Skip to content

Commit b609a7c

Browse files
committed
Exports quicksort
1 parent ff1cec8 commit b609a7c

File tree

1 file changed

+44
-39
lines changed

1 file changed

+44
-39
lines changed
Lines changed: 44 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,54 @@
1-
var quicksort = (function () {
1+
(function (exports) {
22
'use strict';
33

4-
function charAt(str, i) {
5-
return (i < str.length) ? str.charCodeAt(i) : -1;
6-
}
4+
var quicksort = (function () {
75

8-
function swap(arr, i, j) {
9-
var temp = arr[j];
10-
arr[j] = arr[i];
11-
arr[i] = temp;
12-
}
6+
function charAt(str, i) {
7+
return (i < str.length) ? str.charCodeAt(i) : -1;
8+
}
139

14-
function quicksort(arr, lo, hi, d) {
15-
if (lo >= hi) {
16-
return;
10+
function swap(arr, i, j) {
11+
var temp = arr[j];
12+
arr[j] = arr[i];
13+
arr[i] = temp;
1714
}
18-
var lowPointer = lo,
19-
highPointer = hi,
20-
p = charAt(arr[lo], d),
21-
i = lo + 1,
22-
current;
23-
24-
while (i <= highPointer) {
25-
current = charAt(arr[i], d);
26-
if (current < p) {
27-
swap(arr, i, lowPointer);
28-
lowPointer += 1;
29-
} else if (current > p) {
30-
highPointer -= 1;
31-
i += 1;
32-
} else {
33-
i += 1;
15+
16+
function quicksort(arr, lo, hi, d) {
17+
if (lo >= hi) {
18+
return;
3419
}
35-
}
20+
var lowPointer = lo,
21+
highPointer = hi,
22+
p = charAt(arr[lo], d),
23+
i = lo + 1,
24+
current;
3625

37-
quicksort(arr, lo, lowPointer - 1, d);
38-
if (p >= 0) {
39-
quicksort(arr, lowPointer, highPointer, d + 1);
26+
while (i <= highPointer) {
27+
current = charAt(arr[i], d);
28+
if (current < p) {
29+
swap(arr, i, lowPointer);
30+
lowPointer += 1;
31+
} else if (current > p) {
32+
highPointer -= 1;
33+
i += 1;
34+
} else {
35+
i += 1;
36+
}
37+
}
38+
39+
quicksort(arr, lo, lowPointer - 1, d);
40+
if (p >= 0) {
41+
quicksort(arr, lowPointer, highPointer, d + 1);
42+
}
43+
quicksort(arr, highPointer + 1, hi, d);
4044
}
41-
quicksort(arr, highPointer + 1, hi, d);
42-
}
4345

44-
return function sort(arr) {
45-
quicksort(arr, 0, arr.length - 1, 0);
46-
return arr;
47-
};
48-
}());
46+
return function sort(arr) {
47+
quicksort(arr, 0, arr.length - 1, 0);
48+
return arr;
49+
};
50+
}());
51+
52+
exports.quicksort = quicksort;
4953

54+
}(typeof exports === 'undefined' ? window : exports));

0 commit comments

Comments
 (0)