function quickSort(arr, L, R){
if(L < R){
let rand = getRandomInt(L, R);
swap(arr, rand, R);//随机快排
let p = partition(arr, L, R);
quickSort(arr, L, p[0] - 1);
quickSort(arr, p[1] + 1, R);
}
}
function partition(arr, L, R){
let less = L -1,
more = R;
while(L < more){
if(arr[L] < arr[R]){
swap(arr, L++, ++less);
} else if (arr[L] > arr[R]){
swap(arr, L, --more);
} else {
L++;
}
}
swap(arr, more, R);
return [less + 1, more];
}
//交换arr[i],arr[j]
function swap(arr, i, j){
let temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//得到两个数之间的随机数
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
let arr = [100,6,10,6,3,5,6,23,9,300,10,5,3,3,1,1,2];
quickSort(arr, 0, arr.length - 1);
console.log(arr);
JavaScript实现快速排序
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- javascript实现快速排序算法:快速排序基本思想:使用分治法策略来把一个序列分为两个子序列 步骤为:1.从数...
- 1.快速排序的基本思想 长话短说,排序算法中快速排序的性能还是不错的,今天我就讲讲javascript中实现快速排...