最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

千鋒教育web前端高頻面試題視頻教程,kerwin大話前端面試秘籍(附答案)

2023-07-19 08:43 作者:空杯切の  | 我要投稿

快速排序

一、排序是什

排序說白了其實就是對一個無序的列表中的所有元素按順序排列。

二、快速排序

快速排序其實是交換排序的一種,而交換排序也就是根據(jù)那個待排序列中兩個關鍵字的比較結果,來對換他們兩個在序列中的位置。

三、快速排序思想

假如從小到大排序...

  1. 在待排序的列表中選定一個元素,將這個元素作為此次排序的樞紐。正常來講這個樞紐選首元素就好。
  2. 然后通過遍歷,對待排序的所有元素與此次遍歷的樞紐做比較,將比這個樞紐小的元素放在左側,比這個樞紐大的元素放在它的右側。
  3. 經(jīng)過一次排序,此次排序的樞紐就已經(jīng)確定了它的最終位置,此后不用在改變了。
  4. 同時在一次排序后,將此次執(zhí)行的待排序列分成了兩個新的待排序列,通過遞歸,分別對這兩個待排序列作為新的執(zhí)行待排序列進行前幾步。
  5. 當遞歸完成時,每一個元素都在它的最終位置了,快速排序結束。
四、算法性能
  • 當初始序列越接近有序,導致算法的遞歸層數(shù)越高,也就是執(zhí)行次數(shù)越多,性能越差,
  • 完全有序時最差,時間復雜度為為O(n*n),空間復雜度為O(n)
  • 反之性能最好,時間復雜度為O(n*log2(n)),空間復雜度為O(log2(n))
五、代碼實現(xiàn)
?function quickSort(arr) {
???if (arr.length <= 1) return arr;
???const pivot = arr[0];
???const low = [],high = []; 
???for (let i = 1; i < arr.length; i++) {
?????if (arr[i] < pivot) {
???????low.push(arr[i]);
????} else {
???????high.push(arr[i]);
????}
??}
???return quickSort(low).concat(pivot, quickSort(high));
?}


千鋒教育web前端高頻面試題視頻教程,kerwin大話前端面試秘籍(附答案)的評論 (共 條)

分享到微博請遵守國家法律
澄江县| 新昌县| 萨迦县| 万安县| 郎溪县| 崇明县| 英山县| 寿宁县| 当阳市| 阆中市| 泰兴市| 龙南县| 汤阴县| 汕头市| 勐海县| 蓝田县| 南投市| 莱芜市| 保康县| 武安市| 龙山县| 资中县| 那坡县| 临高县| 新田县| 邵东县| 梁山县| 宁化县| 垣曲县| 大化| 平遥县| 新河县| 格尔木市| 宝应县| 报价| 墨脱县| 仁化县| 池州市| 晴隆县| 来凤县| 敖汉旗|