Initial data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 72d218235f
commit f23f22d71c
199087 changed files with 3378941 additions and 0 deletions

View file

@ -0,0 +1,50 @@
class CircleSort {
function : Main(args : String[]) ~ Nil {
circleSort([2, 14, 4, 6, 8, 1, 3, 5, 7, 11, 0, 13, 12, -1]);
}
function : circleSort(arr : Int[]) ~ Nil {
if(arr->Size() > 0) {
do {
arr->ToString()->PrintLine();
}
while(CircleSort(arr, 0, arr->Size() - 1, 0) <> 0);
};
}
function : CircleSort( arr : Int[], lo : Int, hi : Int, num_swaps : Int) ~ Int {
if(lo = hi) {
return num_swaps;
};
high := hi;
low := lo;
mid := (hi - lo) / 2;
while (lo < hi) {
if(arr[lo] > arr[hi]) {
Swap(arr, lo, hi);
num_swaps++;
};
lo++;
hi--;
};
if(lo = hi & arr[lo] > arr[hi + 1]) {
Swap(arr, lo, hi + 1);
num_swaps++;
};
num_swaps := CircleSort(arr, low, low + mid, num_swaps);
num_swaps := CircleSort(arr, low + mid + 1, high, num_swaps);
return num_swaps;
}
function : Swap(arr : Int[], idx1 : Int, idx2 : Int) ~ Nil {
tmp := arr[idx1];
arr[idx1] := arr[idx2];
arr[idx2] := tmp;
}
}