使用 js 實現十大排序演算法 快速排序

2022-01-13 09:53:17 字數 1114 閱讀 2063

* * @description 快速排序 quicksort

* @difficulty medium

* @complexity o(n*log(n))

* @augments

* @example

* @link

* @solutions

* */

const log = console.log;

function quicksort(arr)

// 中間 index

let pivotindex = math.floor(arr.length / 2);

// 擷取中間值,✅ splice 改變原陣列長度, ❌ slice 不改變原陣列長度

const pivot = arr.splice(pivotindex, 1)[0];

const left = ;

const right = ;

for (let i = 0; i < arr.length; i++) else

} // 遞迴

return quicksort(left).concat([pivot], quicksort(right));

};const arr = [12, 7, 5, 23, 18, 37, 1, 9, 17];

const test = quicksort(arr);

log(`arr =\n`, arr)

log(`test =\n`, test)

js 十大排序演算法 all in one

www.cnblogs.com 發布文章使用:只允許註冊使用者才可以訪問!

十大排序演算法 快速排序

原理 從數列中挑出乙個元素,稱為 基準 pivot 重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面 相同的數可以到任一邊 在這個分割槽退出之後,該基準就處於數列的中間位置。這個稱為分割槽 partition 操作 遞迴地 recursive 把小於基準值元素的子...

使用 js 實現十大排序演算法 堆排序

堆排序 heapsort 是指利用堆這種資料結構所設計的一種排序演算法。大頂堆 每個節點的值都大於或等於其子節點的值,在堆排序演算法中用於公升序排列 小頂堆 每個節點的值都小於或等於其子節點的值,在堆排序演算法中用於降序排列 堆是乙個近似完全二叉樹的結構,並同時滿足堆的性質 即子節點的鍵值或索引總是...

十大排序演算法之快速排序

簡單排序 插入排序 選擇排序 氣泡排序 必學 分治排序 快速排序 歸併排序 必學 分配排序 桶排序 基數排序 樹狀排序 堆排序 必學 其他 計數排序 必學 希爾排序 原理 核心思想是通過乙個支點進行資料拆分,左邊的資料小於這個支點,右邊的資料大於支點,然後把左邊和右邊的做一次遞迴,直到遞迴結束。ph...