用 JavaScript 实现快速排序代码如下:
1 /* 2 * @author liphong 3 * @data 2019/02/24 4 */ 5 6 var arr = []; // 需要被排序数组 7 8 /* 9 * 分离函数:实现参考数组中左边部分比参考值小,右边部分比参考值大 10 * @param left, right {Number, Number} 数组头、尾的下标值 11 * @return left {Number} 数组参考值最后的位置下标值 12 */ 13 function partition(left, right) { 14 const initValue = arr[left]; 15 while (left < right) { 16 while (arr[right] >= initValue && left < right) { 17 right --; 18 } 19 arr[left] = arr[right]; 20 while (arr[left] <= arr[right] && left < right) { 21 left ++; 22 } 23 arr[right] = arr[left]; 24 } 25 arr[left] = initValue; 26 return left; 27 } 28 /* 29 * 函数:通过递归自身,实现从小到大排序 30 * @param left, right {Number, Number} 数组头、尾的下标值 31 */ 32 function quickSort(left, right) { 33 if (left >= right) { 34 return 35 } 36 let mid = partition(left, right); 37 quickSort(left, mid - 1); 38 quickSort(mid + 1, right); 39 } 40 41 quickSort(0, arr.length - 1); // 快排
原文地址:https://www.cnblogs.com/lipohong/p/10556777.html
时间: 2024-10-10 04:52:00