ソース
function QuickSortForDataFle(array,first,last, OrderKey, Order) {
var point, f, l, tmp;
f = first;
l = last;
point = array[first]; //ピボットを決定
while(first < last) {
while((array[last] >= point) && (first < last)) {
last--;
}
if(first != last) {
array[first] = array[last];
first++;
}
while((array[first] <= point) && (first < last)) {
first++;
}
if(first != last) {
array[last] = array[first];
last--;v
}
}
tmp = array[f];
array[first] = point;
point = first;
first = f;
last = l;
if(first < point) {
QuickSortForDataFle(array,first,point-1, 0, 0);
}v
if(last > point) {
QuickSortForDataFle(array,point+1,last, 0, 0);
}
}
//クイックソートの本体
function quickSort(array,array_size){
QuickSortForDataFle(array,0,array_size-1, 0, 0);v
}v
//ここから開始
var h=[6,3,8,4,5,1,2,9,7,0];
document.write("ソート前:");v
for(var i=0;i < h.length;i++)
{
document.write(h[i]+" ");
}
document.write("
");
//クイックソート
quickSort(h,h.length);
document.write("ソート後:");
for(var i=0;i < h.length;i++)
{
document.write(h[i]+" ");
}