One more snippet
Array sorting with 'selection' method
(tryed to implement quick sorting but without success-
in c-script is a small stack. So, if I check function nesting level in recursion and provide other sort method for big one, the QuickSort time is very bad.)
Code:

function SelSortArr(&Arr, FirstIndex, LastIndex, Down){
var i;
var j;
var t;

i = FirstIndex;
while (i <= LastIndex){
j = LastIndex;
while (j > i) {
if ((Down==Off)&&(Arr[i] > Arr[j])) ||
((Down==On)&&(Arr[i] < Arr[j])) {
T = Arr[i];
Arr[i] = Arr[j];
Arr[j] = T;
}
j -= 1;
}
i += 1;
}
}


usage example:
Code:

var MyArray[500];//[5000];
...
//Partial sort
SelSortArr(MyArray, 0, MyArray.length >> 1, Off);
SelSortArr(MyArray, MyArray.length >> 1, MyArray.length-1, On);
...
timer();
//Sort whole array from biggest to lowest
SelSortArr(MyArray, 0, MyArray.length-1, On);
t=timer();
file_str_write(fh, "time elapsed(microseconds)=");
file_var_write(fh, t);
...
timer();
//Sort whole array from lowest to biggest
SelSortArr(MyArray, 0, MyArray.length-1, Off);
t=timer();
file_str_write(fh, "time elapsed(microseconds)=");
file_var_write(fh, t);


For 500 elements in array I have ~17.5 millisecs,
for 5000 elements time is ~70 millisecs at my PC.