快速排序是對冒泡排序的一種改進,第一趟排序時將數據分紅兩部分,一部分比另外一部分的全部數據都要小。而後遞歸調用,在兩邊都實行快速排序。數組
如今有一個數據集{85, 24, 63, 45, 17, 31, 96, 50}ui
function quickSort(arr){ if (arr.length <= 1){ return arr; } //若是數組<=1,則直接結束遞歸 // 定義基準,並把基準從原數組刪除 var pivotIndex = Math.floor(arr.length / 2); var pivot=arr.splice(pivotIndex,1)[0]; // 定義左右數組 var left = []; var right = []; // 比基準小的放在left,比基準大的放在right for(var i=0; i < arr.length; i++){ if(arr[i] <= pivot){ left.push(arr[i]); } else{ right.push(arr[i]); } } //遞歸,對左右兩個數組不停的按照基準比較,知道子集都剩下一個爲止 return quickSort(left).concat([pivot],quickSort(right)); }