JS實現(xiàn)最簡單的冒泡排序算法
1. 算法步驟
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結(jié)尾的最后一對。這步做完后,最后的元素會是最大的數(shù)。
針對所有的元素重復(fù)以上的步驟,除了最后一個。
持續(xù)每次對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。
2. 動圖演示

3. 什么時候最快
當(dāng)輸入的數(shù)據(jù)已經(jīng)是正序時(都已經(jīng)是正序了,我還要你冒泡排序有何用?。?/p>
4. 什么時候最慢
當(dāng)輸入的數(shù)據(jù)是反序時(寫一個 for 循環(huán)反序輸出數(shù)據(jù)不就行了,干嘛要用你冒泡排序呢,我是閑的嗎)。
5. JavaScript 代碼實現(xiàn)
function bubbleSort(arr) {
var len = arr.length;
for (var i = 0; i < len; i++) {
for (var j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j+1]) { // 相鄰元素兩兩對比
var temp = arr[j+1]; // 元素交換
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
以上所述是小編給大家介紹的JS實現(xiàn)最簡單的冒泡排序算法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
關(guān)于javascript原型的修改與重寫(覆蓋)差別詳解
下面小編就為大家?guī)硪黄P(guān)于javascript原型的修改與重寫(覆蓋)差別詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08
ES6新特性之?dāng)?shù)組、Math和擴(kuò)展操作符用法示例
這篇文章主要介紹了ES6新特性之?dāng)?shù)組、Math和擴(kuò)展操作符用法,結(jié)合實例形式分析了ES6中數(shù)組、Math和擴(kuò)展操作符的新特性、使用方法及相關(guān)注意事項,需要的朋友可以參考下2017-04-04
將form表單中的元素轉(zhuǎn)換成對象的方法適用表單提交
這篇文章主要介紹了如何將form表單中的元素轉(zhuǎn)換成對象,需要的朋友可以參考下2014-05-05
js數(shù)字滑動時鐘的簡單實現(xiàn)(示例講解)
下面小編就為大家?guī)硪黄猨s數(shù)字滑動時鐘的簡單實現(xiàn)(示例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08
Canvas?drawImage方法實現(xiàn)圖片壓縮詳解
這篇文章主要為大家介紹了Canvas?drawImage方法實現(xiàn)圖片壓縮詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
javascript學(xué)習(xí)網(wǎng)址備忘
javascript學(xué)習(xí)網(wǎng)址備忘...2007-05-05
一篇文章弄懂javascript中的執(zhí)行棧與執(zhí)行上下文
這篇文章主要給大家介紹了關(guān)于javascript中執(zhí)行棧與執(zhí)行上下文的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用javascript具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
javascript獲取隱藏dom的寬高 具體實現(xiàn)
一個隱藏的DOM是獲取不到寬高的,如果想要獲取,采用下面的方法:2013-07-07

