ES6演算法 快速排序 Quicksort

2021-08-19 18:02:30 字數 748 閱讀 4361

實現方式

function

quick_sort

(arr, start, end)

let mid = arr[start]

let low = start

let high = end

while

(low < high)

arr[low]

= arr[high]

while

(low < high && arr[low]

< mid)

arr[high]

= arr[low]

} arr[low]

= mid

quick_sort

(arr, start, low -1)

quick_sort

(arr, low +

1, end)

}let arr =[7

,4,3

,67,34

,1,8

]quick_sort

(arr,

0, arr.length -1)

// [ 1, 3, 4, 7, 8, 34, 67 ]

分析: 第一次外層while迴圈跳出,將陣列分成左邊兩部分,中間為7, 左邊都比7小,右邊都比7大,之後將左邊陣列傳入遞迴,當左邊全部排好後,才會將右邊陣列傳入進行遞迴,迴圈結束後,如果我們以7為根節點,可以轉化乙個典型的二叉樹,而我們上面的操作像不像深度優先遍歷的遞迴演算法。

ES6快速入門

三種語法實現同乙個功能,從而加深對三種語法的運用,最後了解es6的優勢 知識點 常量 作用域 箭頭函式 預設 物件 es5 中常量的寫法 object.defineproperty window,pi2 console.log window.pi2 es6 的常量寫法 const pi 3.1415...

ES6快速入門

引數配置 promise物件 const 宣告的常量不可改變,宣告時必須初始化 const pi 3.1415926 console.log pi 使用const定義的陣列和物件,其值是可變的,但是不能對其進行重新賦值 const a a 0 1 console.log a 0 輸出1 const ...

ES6演算法 氣泡排序 Bubble Sort

實現方式1 function buddle sort arr let arr 7 4,3 67,34 1,8 buddle sort arr console.log arr 1,3,4,7,8,34,67 解析 依次比較相鄰兩個數大小,每次內迴圈都會將內迴圈中最大的數移到最後,內迴圈長度 1 迴圈引...