1.氣泡排序
思路:a)比較兩個相鄰的元素,如果後乙個比前乙個大,則交換位置
b) 第一輪的時候最後乙個元素應該是最大的乙個
c) 按照第一步的方法進行兩個相鄰的元素的比較,由於最後乙個元素已經是最大的了,所以最後乙個元素不用比較。
**:
function sort(element)
}console.log(element);}}
var element = [3,5,1,2,7,8,4,5,3,4];
"before:"+element);[3,5,1,2,7,8,4,5,3,4];
sort(element);
"after:"+element);[1, 2, 3, 3, 4, 4, 5, 5, 7, 8]
看看列印的結果:
......中間部分省略直接看後面的結果
看到列印的結果,想必大家已經發現,在第乙個for迴圈乙個數字的同時,進入到第二個迴圈,改變陣列數字的順序,將大的數字放在後面,直到遍歷完發現沒有小的數字在後面的時候,再次進入第乙個迴圈,遍歷後面的數字,以此類推,直到遍歷完所有的數字,兩次遍歷結束;
2.快速排序
在看完上面的東西之後,不知道大家有沒有發現在實際的工作中如果資料量過大,陣列比較複雜,通過兩次遍歷,同時會帶來效能上的問題,不用慌,我們還可以用快速排序的方法進行解決,快速排序對氣泡排序的一種改進,讓我們來看看
思路:第一次排序的時候將資料分成兩個部分,一部分比另外一部分所有的資料都要小,然後遞迴呼叫,在兩邊都實行快速排序。
**:
JS實現氣泡排序
氣泡排序的重要思想 相鄰資料對之間比較 比較完後大數始終大數在小數後面於是每一次相鄰資料對比較完後,大數就往上冒一點 所以,當資料為正序排列時 最好情況 比較次數,移動次數,時間複雜度最小 比較次數為 n 1 次 移動次數為 0 次 時間複雜度為 o n 然而,當資料為反序排列時 最差情況 比較次數...
JS實現氣泡排序
1,演算法簡介 氣泡排序是一種簡單的排序演算法,它的工作原理是重複走訪要排列的元素,一次比較兩個元素,若兩個元素有錯誤,則將它們交換,直到沒有元素再交換,排序結束。2,演算法描述 1 比較相鄰元素,如果第乙個比第二個大,就交換 2 對每一對相鄰元素作相同的工作,從第一對到最後一對,最後那個元素會是最...
js實現氣泡排序
氣泡排序就是相鄰的兩個數進行比較,將大的放在後面,小的放在前面。換句話說就是,前面的數比後面的數大,就交換位置,否則不換位置,以陣列 5156455 8654 第一趟排序 第一次 51和56比較,不交換位置 5156455 8654 第二次 56和45比較,交換位置 5145565 8654 第三次...