mirror of
https://github.com/PetroProtsyk/SSharp
synced 2026-06-08 12:11:10 +00:00
45 lines
1.1 KiB
Plaintext
45 lines
1.1 KiB
Plaintext
//Script.NET examples
|
|
//(c)2007-2009, Protsyk Petro, http://www.protsyk.com
|
|
|
|
function swap(array, a, b)
|
|
{
|
|
tmp=array[a];
|
|
array[a]=array[b];
|
|
array[b]=tmp;
|
|
}
|
|
|
|
function partition(array, begin, end, pivot)
|
|
{
|
|
piv=array[pivot];
|
|
swap(array, pivot, end-1);
|
|
store=begin;
|
|
for(ix=begin; ix < end-1; ix++) {
|
|
if(array[ix]<=piv) {
|
|
swap(array, store, ix);
|
|
store++;
|
|
}
|
|
}
|
|
swap(array, end-1, store);
|
|
return store;
|
|
}
|
|
|
|
function qsort(array, begin, end)
|
|
{
|
|
if(end-1>begin) {
|
|
pivot=begin+(end-begin) / 2;
|
|
pivot=partition(array, begin, end, pivot);
|
|
qsort(array, begin, pivot);
|
|
qsort(array, pivot+1, end);
|
|
}
|
|
}
|
|
|
|
a = [1,2,10,0,12,34,5,3,3,4,1,23,4];
|
|
s1 = '';
|
|
for (i=0; i < a.Length; i++)
|
|
s1 = s1+' '+a[i];
|
|
|
|
qsort(a, 0, a.Length);
|
|
s='';
|
|
for (i=0; i < a.Length; i++)
|
|
s = s+' '+a[i];
|