mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 14:54:07 +10:00
Implemented quicksort in _sort()
This commit is contained in:
@@ -1,22 +1,27 @@
|
||||
//polyfill the _insert function
|
||||
fn _insert(self, k, v) {
|
||||
var tmp1 = v;
|
||||
var tmp2;
|
||||
for (var i = k; i < self.length(); i++) {
|
||||
tmp2 = self[i];
|
||||
self[i] = tmp1;
|
||||
tmp1 = tmp2;
|
||||
}
|
||||
import compound;
|
||||
|
||||
self.push(tmp1);
|
||||
return self;
|
||||
fn less(a, b) {
|
||||
return a < b;
|
||||
}
|
||||
|
||||
var a = [1, 2, 3];
|
||||
fn greater(a, b) {
|
||||
return a > b;
|
||||
}
|
||||
|
||||
a = a.insert(1, 42);
|
||||
var a = [7, 2, 1, 8, 6, 3, 5, 4];
|
||||
var b = [7, 2, 1, 4, 6, 3, 5, 8];
|
||||
var c = [1, 2, 3, 4, 5, 6, 7, 8];
|
||||
var d = [7, 2, 1, 8, 6, 3, 5, 4];
|
||||
|
||||
assert a == [1, 5, 2, 3], "index assignment left failed";
|
||||
a = a.sort(less);
|
||||
b = b.sort(less);
|
||||
c = c.sort(less);
|
||||
d = d.sort(greater);
|
||||
|
||||
assert a == [1, 2, 3, 4, 5, 6, 7, 8], "array.sort(less) failed";
|
||||
assert b == [1, 2, 3, 4, 5, 6, 7, 8], "array.sort(less) with pivot high failed";
|
||||
assert c == [1, 2, 3, 4, 5, 6, 7, 8], "array.sort(less) pre-sorted array failed";
|
||||
assert d == [8, 7, 6, 5, 4, 3, 2, 1], "array.sort(greater) failed";
|
||||
|
||||
|
||||
print "All good";
|
||||
print "All good";
|
||||
|
||||
Reference in New Issue
Block a user