-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQuickSort.txt
More file actions
64 lines (52 loc) · 1.14 KB
/
Copy pathQuickSort.txt
File metadata and controls
64 lines (52 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
let QuickSort = `// from http://www.the-art-of-web.com/javascript/quicksort/
var col = 0;
var parent = null;
var items = new Array();
var N = 0;
function quicksort(m, n, desc)
{
if (n <= m + 1) return;
if ((n - m) == 2)
{
if (compare(get(n - 1), get(m), desc)) exchange(n - 1, m);
return;
}
i = m + 1;
j = n - 1;
if (compare(get(m), get(i), desc)) exchange(i, m);
if (compare(get(j), get(m), desc)) exchange(m, j);
if (compare(get(m), get(i), desc)) exchange(i, m);
pivot = get(m);
while (true)
{
j--;
while (compare(pivot, get(j), desc)) j--;
i++;
while (compare(get(i), pivot, desc)) i++;
if (j <= i) break;
exchange(i, j);
}
exchange(m, j);
if ((j - m) < (n - j))
{
quicksort(m, j, desc);
quicksort(j + 1, n, desc);
} else
{
quicksort(j + 1, n, desc);
quicksort(m, j, desc);
}
}
function sortTable(tableid, n, desc)
{
parent = document.getElementById(tableid);
col = n;
if (parent.nodeName != "TBODY")
parent = parent.getElementsByTagName("TBODY")[0];
if (parent.nodeName != "TBODY")
return false;
items = parent.getElementsByTagName("TR");
N = items.length;
// quick sort
quicksort(0, N, desc);
}`;