冒泡的意思就是一次迴圈中依次比較相鄰位置的數,滿足則交換。
第乙個for代表次數,第二個for來真正的兩兩比較。
冒泡的關鍵在於迴圈條件的次數確定,先看第乙個for迴圈是length-1,
比如5個數 5 3 1 2 0,那麼看第一次比較後變成3 1 2 0 5 第二次變成
1 20 3 5 第三次變成 1 0 2 3 5 第四次變成 0 1 2 3 5 最後一次不需要比較了,肯定最小
所以是length-1次了
然後看第二個迴圈就是用來倆倆比較的 比如5個數 5 3 1 2 0,有這樣的比較(先認為最多需要比較多少次,
忽略中間遇到的不需要比較的),那麼倆倆比較最多需要4次((5,3) (3,1) (1,2) (2,0)先忽略交換哈),第二次迴圈變成4個數倆倆比較 需要3次,也就是說乙個數冒泡上去了,那麼我們就不需要理她了,只關心剩下的數的比較即length-1-i。當然寫length-1也可以,但是就多了很多沒用的迴圈。
#include //********************=
void swap(int &i, int &j)
//***********************************===
void bubblesort(int *a, int len ) //for
}//for
}//bubblesort
//***********************************====
int main() ;
// int array1 = ;
bubblesort(array,10);
for(int i = 0; i < 10; i++)
return 0;
}
C 簡單實現氣泡排序
這篇文章將會講解如何用c 實現氣泡排序演算法。儘管stl庫中已提供了排序函式,但是理解如何通過簡單的迴圈實現氣泡排序演算法還是有必要的。對於氣泡排序演算法更簡潔的理解,可訪問 include include using namespace std intmain void print the res...
簡單的氣泡排序
氣泡排序的原理非常簡單,它重複地走訪過要排序的數列,一次比較兩個元 素,如果他們的順序錯誤就把他們交換過來。比較相鄰的元素。如果第乙個比第二個大 公升序 就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步 做完後,最後的元素會是最大的數。針對所有的元素重複以上的步驟,除...
氣泡排序和簡單選擇排序實現
氣泡排序演算法的運作如下 從後往前 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較...