JavaScript實現快速排序
阿新 • • 發佈:2020-12-29
技術標籤:JS面試快速排序jsjavascript演算法資料結構
var quickSort = function(arr) {
// 當陣列的長度小於等於1時 返回(退出遞迴)
if (arr.length <= 1) { return arr; }
// 選取中間值作為基準值
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
// 建立兩個空陣列分別存放小於基準值的陣列和大於基準值的陣列
var left = [];
var right = [];
// 遍歷陣列,將小於基準值的陣列元素push到left陣列中,大於基準值的陣列push到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) );
};
a = [1,78,98,4564,56,789,2234,6,8,435,878,98879665,534556,5,23432,76867,87865]
console.log(quickSort(a));
輸出的結果為: