JS實現氣泡排序

2021-08-21 09:45:14 字數 649 閱讀 9022

1,演算法簡介

氣泡排序是一種簡單的排序演算法,它的工作原理是重複走訪要排列的元素,一次比較兩個元素,若兩個元素有錯誤,則將它們交換,直到沒有元素再交換,排序結束。

2,演算法描述

1)比較相鄰元素,如果第乙個比第二個大,就交換

2)對每一對相鄰元素作相同的工作,從第一對到最後一對,最後那個元素會是最大元素

3)針對所有元素執行上面的操作,除了最後乙個除外

4)持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

3,演算法分析

在最壞的情況下,氣泡排序需要交換n(n-1)/2次,空間複雜度為o(1)

時間複雜度最好的情況是o(n)  最壞的情況o(n^2) 平均複雜度為o(n^2) 不穩定

4,**實現

//氣泡排序

function bubblesort(arr)

} }return arr;

}

增加標誌位可以減少比較的次數,如下:

//氣泡排序

function bubblesort(arr)

} if(flag == true)

break;

} return arr;

}

JS實現氣泡排序

氣泡排序的重要思想 相鄰資料對之間比較 比較完後大數始終大數在小數後面於是每一次相鄰資料對比較完後,大數就往上冒一點 所以,當資料為正序排列時 最好情況 比較次數,移動次數,時間複雜度最小 比較次數為 n 1 次 移動次數為 0 次 時間複雜度為 o n 然而,當資料為反序排列時 最差情況 比較次數...

JS實現氣泡排序

1.氣泡排序 思路 a 比較兩個相鄰的元素,如果後乙個比前乙個大,則交換位置 b 第一輪的時候最後乙個元素應該是最大的乙個 c 按照第一步的方法進行兩個相鄰的元素的比較,由於最後乙個元素已經是最大的了,所以最後乙個元素不用比較。function sort element console.log el...

js實現氣泡排序

氣泡排序就是相鄰的兩個數進行比較,將大的放在後面,小的放在前面。換句話說就是,前面的數比後面的數大,就交換位置,否則不換位置,以陣列 5156455 8654 第一趟排序 第一次 51和56比較,不交換位置 5156455 8654 第二次 56和45比較,交換位置 5145565 8654 第三次...