javascript氣泡排序簡單介紹
本章節通過程式碼例項介紹一下氣泡排序演算法的簡單實現,先直接看段程式碼:
[JavaScript] 純文字檢視 複製程式碼function BubbleSort(arr) { var temp; var exchange; for(var i=0; i<arr.length; i++) { exchange = false; for(var j=arr.length-2; j>=i; j--) { if((arr[j+1]) < (arr[j])) { temp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = temp; exchange = true; } } if(!exchange) break; } return arr; } var theArray=[10,15,2,8,9,8,13,26]; console.log(BubbleSort(theArray));
以上程式碼利用氣泡排序演算法將陣列元素重新進行了排序,下面簡單介紹一下它的實現過程。
一.實現原理:
顧名思義,氣泡排序類似從水底浮出的水泡,誰最輕誰就會優先上浮,那麼陣列中的元素,最小的會首先被排到陣列的首位,依次類推,這裡就不多介紹了,具體可以參閱程式碼註釋。
二.程式碼註釋:
1.function BubbleSort(arr){},實現排序的函式,引數是要進行排序的陣列。
2.var temp,宣告一個變數,用來暫時儲存陣列元素,其實就是為了作為一個過渡,傳遞陣列元素的值之用。
3.var exchange,會被賦布林值,用來標識是否已經確定陣列元素的大小順序,也就是說陣列元素的順序已經滿足要求,如果為false,則說明滿足要求,為true的話還需要繼續排序。
4.for(var i=0; i<arr.length; i++) {},一個for迴圈語句,這個規定了最多冒泡的次數,例如一個陣列有10個元素,最差的情況就是要冒泡9次,比如恰好陣列大小順序是按照從大到小排列的。
5. exchange = false,賦初值為false。
6.for(var j=arr.length-2; j>=i; j--){},這個for迴圈非常關鍵,j=arr.length-2這個規定了是從陣列倒數第二個元素開始和倒數第一個元素開始比較(倒數第一個j+1),j>=i規定了當前冒泡結束的位置,比如第一次冒泡結束後,那麼第一個陣列元素已經是最小的了,所以也就不用再比較了。
7.if((arr[j+1]) < (arr[j])){},比較兩個陣列元素的大小。
8.temp = arr[j+1];arr[j+1] = arr[j];arr[j] = temp;exchange = true;,進行交換位置,並將exchange設定為true。
9.if(!exchange) break,跳出迴圈。
10.return arr;返回排序後的陣列。
相關文章
- 氣泡排序的簡單理解排序
- 簡單易懂的氣泡排序排序
- JavaScript氣泡排序JavaScript排序
- Javascript 氣泡排序JavaScript排序
- JavaScript希爾排序簡單介紹JavaScript排序
- 氣泡排序就這麼簡單排序
- 【排序演算法動畫解】排序介紹及氣泡排序排序演算法動畫
- 用go實現簡單的氣泡排序Go排序
- 【JS面試向】選擇排序、桶排序、氣泡排序和快速排序簡介JS面試排序
- 排序——氣泡排序排序
- 氣泡排序排序
- 9. 氣泡排序,以及如何優化氣泡排序,氣泡排序屬於插入排序排序優化
- 排序之氣泡排序排序
- 排序:氣泡排序&快速排序排序
- JavaScript 簡單介紹JavaScript
- js氣泡排序JS排序
- 氣泡排序-fusha排序
- 氣泡排序演示排序
- Shell氣泡排序排序
- d氣泡排序排序
- 氣泡排序正解排序
- java氣泡排序Java排序
- 氣泡排序 java排序Java
- php氣泡排序PHP排序
- Java 氣泡排序Java排序
- 氣泡排序1排序
- 氣泡排序法排序
- 氣泡排序(Java)排序Java
- 容器氣泡排序排序
- 最簡單的氣泡排序還能怎麼優化?排序優化
- 基本排序之氣泡排序排序
- 排序:交換排序——氣泡排序法排序
- 簡單介紹克隆 JavaScriptJavaScript
- javascript物件簡單介紹JavaScript物件
- javascript this指向簡單介紹JavaScript
- javascript加密簡單介紹JavaScript加密
- 一篇文章搞定javascript氣泡排序JavaScript排序
- JavaScript氣泡排序+Vue視覺化冒泡動畫JavaScript排序Vue視覺化動畫