js氣泡排序詳解

2021-10-23 00:06:52 字數 1104 閱讀 3937

js中的氣泡排序,就是把相鄰的兩個資料進行比較,如果順序相反就交換位置,直到所有的資料按照公升序(從小到大)或降序(從大到小)的方式進行排列;

例:var arr=[5,4,3,2,1];用氣泡排序把這個陣列公升序排列,也就是把陣列變為[1,2,3,4,5];

第一輪:arr=[5,4,3,2,1];

1、比較5和4,5大於4,是降序,交換位置,現在陣列為[4,5,3,2,1];

2、比較5和3,5大於3,是降序,交換位置,現在陣列為[4,3,5,2,1];

3、比較5和2,5大於2,是降序,交換位置,現在陣列為[4,3,2,5,1];

4、比較5和1,5大於1,是降序,交換位置,現在陣列為[4,3,2,1,5];

注:第一輪比較完成後,一共比較了4次,最大的數被挪到了最後。

第二輪:arr=[4,3,2,1,5];

1、比較4和3,4大於3,是降序,交換位置,現在陣列為[3,4,2,1,5];

2、比較4和2,4大於2,是降序,交換位置,現在陣列為[3,2,4,1,5];

3、比較4和1,4大於1,是降序,交換位置,現在陣列為[3,2,1,4,5];

注:因為第一輪比較時陣列中最大的數5已經在最後了,所以4和5不用比較。

第二輪比較完成後,一共比較了3次。

第三輪:arr=[3,2,1,4,5];

1、比較3和2,3大於2,是降序,交換位置,現在陣列為[2,3,1,4,5];

2、比較3和1,3大於1,是降序,交換位置,現在陣列為[2,1,3,4,5];

注:經過前兩輪比較,已知3小於4和5,所以在這一輪3不用與後面的4和5比較。

第三輪比較完成後,一共比較了2次。

第四輪:arr=[2,1,3,4,5];

1、比較2和1,2大於1,是降序,交換位置,現在陣列為[1,2,3,4,5];

到了這裡,陣列已經完成了公升序排列。

總結:如果想對乙個陣列進行公升序或降序排列,一共要進行n(n=陣列的長度減1)輪比較,第一輪比較n次,第二輪比較n-1次,…最後一輪比較1次,比較完成後就會得到想要的陣列。

**如下:

Js氣泡排序詳解

氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再 需要交換,也就是說該數列已經排序完成。兩兩相比較,比較相鄰的元素。如果第乙個比第二個大,就交換它們兩個 對每一對相鄰元素作同樣的工作,從開始第一對到...

js氣泡排序詳解

原理 依次比較相鄰的兩個值,如果後面的比前面的小,則將小的元素排到前面。依照這個規則進行多次並且遞減的迭代,直到順序正確。寫法 詳解 兩個迴圈,第乙個迴圈是迴圈遍歷陣列,i表示陣列下標,第二個迴圈則是判斷陣列元素下標為i和下標為i 1的元素的大小。如果下標為i的元素大於洗標為i 1的元素,則將下標為...

js氣泡排序詳解

因為過一陣要面試 大廠都比較注重演算法題 所以今天練習乙個簡單的冒泡演算法 冒泡演算法的基本原理為 1.比較相鄰的兩個數 如果第乙個數比第二個數大 那麼就交換位置 2.那麼每次比較一輪之後 最大的數將會到最右側 3.所以綜上方法對於長度為n的陣列需要比較n 1次之後才能使陣列排序完畢 為什麼是n 1...