氣泡排序和插入排序區別

2021-07-26 18:54:01 字數 797 閱讀 9832

氣泡排序:

原理:相鄰兩個元素之間的比較。例如將一陣列按從小到大的排列:第一輪兩個元素比較,將陣列中最大的元素放到陣列的最末尾;第二輪兩個元素比較,將陣列中次大的元素放到陣列的倒數第二位,此時不用和最後乙個元素比較了;第三輪兩個元素比較,將第三大的元素放在陣列的倒數第三位的位置上,此時也不用比較和倒數第二個數和倒數第乙個數相比較了;然後以此類推得出結果。

**:void bubblesort(int a,int len)}}

}插入排序:

原理:在得到要排序的陣列以後,將陣列分為兩個部分,陣列的第乙個元素為乙個部分,剩下的元素為一部分,然後從陣列的第二個元素開始,第乙個元素與剩下的所有元素比較,如果剩下的元素沒有比該元素大的,那麼該元素的位置不變,如果有元素的值比該元素大,那麼記錄下他所在的位置;例如:該元素的位置為k,則將從i到k位置上的所有元素往後移動一位,然後將k位置上的值移動到i位置上。這樣就找到了k所在的位置。每乙個元素都這樣進行,最終就會得到排好順序的陣列。

**:void insertsort(int a ,int len)else}}

}比喻:

宣告乙個陣列  12  45  123  3

迴圈一遍之後,插入排序:3  12  45  123     氣泡排序:12  45  3  123

打個比喻氣泡排序就像玩撲克牌時候的樣子,抽到一張牌就直接把它放到合適的位置。而氣泡排序的話就像是乙個老太太,一步一步的向上挪,每次只挪一步。

他們的相同點是:型別都是整型或雙精度型別,都是將陣列按順序排列下來的。

他們的不同點是:排列的方法不一樣。插入是一次性到位。而冒泡是一次一次的往前挪,非常麻煩。

插入排序以及和氣泡排序的區別

插入排序 每次從輸入資料中移除乙個元素並將其插入已排序序列的正確位置,直到所有輸入元素都插入有序序列中。插入排序適用於資料幾乎都已經排序或者輸入資料規模較小時可以使用插入排序。什麼意思呢?舉個例子 例如 給定乙個序列 6 8 1 4 5 3 7 2 可以看出插入排序是從後面的序列中取出乙個數然後插入...

氣泡排序,插入排序

前提 void x sort elementtype a,int n 大多數情況下,為簡單起見,討論從小大的整數排序 n是正整數 只討論基於比較的排序 有定義 只討論內部排序 穩定性 任意兩個相等的資料,排序前後的相對位置不發生改變 沒有一種排序是任何情況下 都表現最好的 氣泡排序 void bub...

氣泡排序 插入排序

學習思路 思路講解 實現 1 通過雙重迴圈,相鄰兩個資料做對比,通過位置交換使其變得有序 2 時間複雜度 分析 解釋 外部迴圈從0開始i 內部迴圈從0開始j,完整迴圈後會將本次最大值放入陣列最後,下次迴圈可忽略相應的尾部資料 length i 1 重複1 2步即可完成排序 實現 public cla...