實現快速排序有點棘手,但如果你理解它並繼續練習,它會更容易。
const quickSort = (arr, lo, hi) => { if (lo >= hi) { return ; } const pivotIndex = getPivotIndex(arr, lo, hi); quickSort(arr, lo, pivotIndex-1); quickSort(arr, pivotIndex+1, hi); } const getPivotIndex = (arr, lo, hi) => { const pivot = arr[hi]; let idx = lo-1; for (let i = lo; i< hi; i++) { if (arr[i] <= pivot) { idx++; const temp = arr[i]; arr[i] = arr[idx]; arr[idx] = temp; } } idx++; const temp = arr[idx]; arr[idx] = pivot; arr[hi] = temp; return idx; } const arr = [9,1,0,3,2,5,9,10, 11]; quickSort(arr, 0, 8); console.log(arr); // [0, 1, 2, 3, 5, 9, 9, 10, 11]
嘗試試運行一下,你會得到清晰的圖片。
以上是使用 Javascript 進行快速排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!