matlab氣泡排序與插入排序的區別

2021-08-31 07:36:56 字數 842 閱讀 2551

首先,我們把兩種排序的原理闡述一下。

氣泡排序:將陣列中最後的乙個元素a(last)與其前面的length(a)-1個元素進行比較,找出最小值。然後,將最小值放在陣列的第乙個位置。再將陣列最後的乙個元素與其前面的length(a)-2元素進行比較,找出最小值。迴圈n-1次,將陣列中的元素從小到大依次排序。

插入排序:將陣列中的前兩個元素進行比較,較小值放在第一位,較大值放在第二位,陣列中剩餘的元素位置不變。插入第三個元素,首先將其與第二個元素進行比較,如果a[3]>=a[2],就插入第四個元素。如果a[3]兩種排序演算法的區別在於:氣泡排序每次都要將最後的元素與之前非最小值的剩餘元素進行排序,這種方法忽略了之前得到相鄰元素比較的經過,從而產生較大的計算量。插入排序通過將新插入的元素與已排序的元素佇列從右到左進行比較,一旦發現其比左邊的元素大,此次迴圈結束。

**如下:

氣泡排序

a=input(『a=』);

n=length(a);

for i=1:n-1

j=n;

while j>i

if a[j-1]>a[j]

tem=a[j-1];

a[j-1]=a[j];

a[j]=tem;

endj=j-1;

endend

disp(a)

插入排序

a=input(『a=』);

n=length(a);

for j=2:n

while i>0&&a[j-1]>a[j]

tem=a[j-1];

a[j-1]=a[j];

a[j]=tem;

j=j-1;

endend

disp(a)

氣泡排序與插入排序

氣泡排序 void bubblesort int a,int n if flag 0 注意 1 每一趟通過比較相鄰兩個數的大小,最後實現最大的數放在最後面 插入排序 void insertionsort int a,int n a p temp 注意 1 比如10 9 8,假設手上拿的牌是10,需要...

氣泡排序與插入排序

氣泡排序 bubble sort 也是一種簡單直觀的 排序演算法 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來.這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。插入排序 插入排序是一種最簡單直觀的排序演算法,它的工作原理是通過構建有序序列,對...

氣泡排序,插入排序

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