快速排序的两种实现方法(js)
2021-07-04 14:06
标签:push 交换 cti ret star 取出 else spl while 快速排序的基本思想:通过一趟排序,将待排记录分割成独立的两部分,其中一部分记录的关键字均比另外一部分记录的关键字小,则可分别对着两部分记录继续进行排序,以达到整个序列有序的目的。--------------冒泡的升级版。 分为两种方法:(1)使用两个数组进行存放。(2)使用交换(正宗版本) (1) (2) 第一种快速排序方法为改良后的版本,第二个快速排序方法为正宗的通过冒泡排序衍生的快速排序方法。 快速排序的两种实现方法(js) 标签:push 交换 cti ret star 取出 else spl while 原文地址:https://www.cnblogs.com/alaner/p/9612948.html function quickSort(arr){
if(arr.length){
return arr;
}
var pivotIndex=Math.floor(arr.length/2);//找到那个基准数
var pivot=arr.splice(pivotIndex,1)[0]; //取出基准数,splice返回值为数组。
var left=[];
var right=[];
for(var i=0;i
var arr=[12,20,5,16,15,1,30,45,23,9];
var start = 0;
var end = arr.length;
console.log(‘arr:‘ +arr);
function quickSort(arr,low,high){
var key=arr[low];
var start=low;
var end=high;
while(end>start){
while(end>start&&arr[end]>=key) end--;
if(arr[end]key){
var temp = arr[end];
arr[end]=arr[start];
arr[start] = temp;
}
while(end>start&&arr[start];
if(arr[start]>=key){
var temp = arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
}
if(start>low) quickSort(arr,low,start-1);
if(end