自寫的比較簡單通俗的冒泡和快速排序的js程式碼
// 氣泡排序
let testArr = [85, 24, 63, 45, 17, 31, 96, 50];
let testResult = bubbleSort(testArr);
console.log("testResult : ", testResult);
function bubbleSort(arr) {
arr.forEach((element, index) => {
for(let i=index+1; i<arr.length; i++) { // 和以後的每個元素進行比較
if (arr[index] > arr[i]) {
[arr[index], arr[i]] = [arr[i], arr[index]];
}
}
});
return arr;
}
複製程式碼
// 快速排序
let quickSort = function(arr) {
if (arr.length <= 1) {
return arr;
};
let mid = arr[Math.round(arr.length/2) - 1];
let arrLeft = [];
let arrRight = [];
for (let i=0; i<arr.length; i++) {
if (arr[i] < mid) {
arrLeft.push(arr[i]);
};
if (arr[i] > mid) {
arrRight.push(arr[i]);
};
};
console.log(quickSort(arrLeft).concat([mid], quickSort(arrRight)));
// 必須有return,不然會報錯,查了一下好像說是遞迴函式的問題
return quickSort(arrLeft).concat([mid], quickSort(arrRight));
};
let testArr = [85, 24, 63, 45, 17, 31, 96, 50];
let testResult = quickSort(testArr);
console.log("testResult", testResult);複製程式碼