氣泡排序和簡單排序C語言實現和比較

2021-10-03 21:06:39 字數 939 閱讀 4140

氣泡排序屬於交換排序的一種,演算法如其名,它通過兩兩比較相鄰關鍵字,如有逆序則交換,不斷使關鍵字小的往上冒,關鍵字大的往下沉。

氣泡排序這裡給出兩種,其中一種容易和選擇排序混淆,在後面也給了區分解析。

void

******bubble

(int a,

int len)}}

}

經過改良的氣泡排序,減少了在已順序的情況下很多多餘的操作

void

bubblesort

(int a,

int len)

} len--;}

}

選擇排序

void

select

(int a,

int len)

if(min!=i)

}}

第一種氣泡排序和選擇排序在寫法上很相近,我覺得這可能使很多人混淆的點吧。先說本質原理上的不同,氣泡排序是不斷比較兩個值,出現逆序就交換,選擇排序是每一輪選擇當前未排序序列最小放到已排好序的序列末尾。再說形式上的不同,冒泡在雙重迴圈中都是從下標從0開始,選擇排序內層for迴圈則是從i+1開始(他們內在邏輯就要求這樣寫)。選擇排序要記錄下下標,氣泡排序不用。

int

main()

;******bubble

(a,5);

// bubblesort(a,5);

// select(a,5);

for(i=

0;i<

5;i++

)printf

("%d "

,a[i]);

}

氣泡排序和選擇排序時間複雜度都是o(n2),他們兩種都是穩定排序,順序和鏈式都可用。

希望本篇部落格可以給疑惑的同學提供一些幫助。

氣泡排序和選擇排序c語言實現

說明 執行程式先輸入乙個數,為陣列的長度,會隨機生成乙個陣列,然後分貝用選擇排序和氣泡排序實現從小到大的排序.實驗結果 選擇排序演算法,從小到大 int temp 0 for int i 0 i n i 氣泡排序演算法,從小到大 for int i 0 i n i for int i 0 i n i...

簡單排序 氣泡排序

1.排序演算法的簡要介紹 排序是非常重要的的並且是非常耗時的,所以它已經成為乙個電腦科學中廣泛研究的課題,而且人們已經研究出了一些非常成熟的演算法。目前最簡單的排序演算法包括 氣泡排序 選擇排序和插入排序。每乙個演算法都由乙個例項說明。更加複雜的排序演算法包括 希爾排序和快速排序。儘管簡單排序演算法...

氣泡排序和選擇排序(Go語言實現)

氣泡排序和選擇排序是排序演算法中比較簡單和容易實現的演算法。氣泡排序的思想為 每一次排序過程,通過相鄰元素的交換,將當前沒有排好序中的最大 小 移到陣列的最右 左 端。而選擇排序的思想也很直觀 每一次排序過程,我們獲取當前沒有排好序中的最大 小 的元素和陣列最右 左 端的元素交換,迴圈這個過程即可實...