前端排序算法
排序算法
冒泡排序
從運行時間來看,冒泡排序是最差的一個,冒泡排序比較任何兩個相鄰的項,如果第一個比第二個大,則交互位置,元素項向上移動至正確的順序,就像氣泡升至表面一樣。他的復雜度是O(n^2)。
function bubbleSort(arr) {let length = arr.length;for (let i = 0; i < length; i++) {for (let j = 0; j < length -1 -i; j++) {if (arr[j] > arr[j+1]) {[arr[j], arr[j+1]] = [arr[j+1], arr[j]];}}} }選擇排序
選擇排序大體是找到數組中最小的值放在第一位,找到第二小放在第二位,以此類推。他的復雜度是O(n^2)。
function selectSort(arr) {let length = arr.length, indexMin;for (let i = 0; i < length - 1; i++) {indexMin = i;for (let j = i; j < length; j++) {if (arr[indexMin] > arr[j]) {indexMin = j;}}if (i !== indexMin) {[arr[i], arr[indexMin]] = [arr[indexMin], arr[i]];}} }插入排序
一般來說,插入排序都采用in-place在數組上實現。具體算法描述如下:
快速排序
1)在數據集之中,選擇一個元素作為"基準"。
2)所有小于"基準"的元素,都移到"基準"的左邊;所有大于"基準"的元素,都移到"基準"的右邊。
3)對"基準"左邊和右邊的兩個子集,不斷重復第一步和第二步,直到所有子集只剩下一個元素為止。
總結
- 上一篇: CSS样式为什么放在head中,而不放在
- 下一篇: instanceof封装