算法的平均時間復雜度為O(nlogn)
/****************************************
算法
輸入
輸出
****************************************/
function split(array
var i = low;
var x = array[low];
for(var j = low +
if(array[j] <= x) {
i ++;
if(i != j) {
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
temp = array[low];
array[low] = array[i];
array[i] = temp;
return i;
}
/****************************************
算法
輸入
輸出
rquicksort(A
****************************************/
function rquicksort(array
if(low < high) {
/******隨機化拆分元素的主元*******/
var v = parseInt(Math
var tmp = array[low];
array[low] = array[v];
array[v] = tmp;
/******隨機化拆分元素的主元*******/
var w = split(array
rquicksort(array
rquicksort(array
return array;
}
}
var array = [
array = rquicksort(array
console
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20538.html