起泡排序

#defin rec KeyType

氣泡排序又叫冒泡排序.起泡排序的算法思想是:通過無序區中相鄰記錄關鍵字間的比較和位置的交換,使關鍵字最小的記錄如氣泡一般逐漸往上“漂浮”直至“水面”。整個算法是從最下面的記錄開始,對每兩個相鄰的關鍵字進行比較,且使關鍵字較小的記錄換至關鍵字較大的記錄之上,使得經過一趟氣泡排序後,關鍵字最小的記錄到達最上端,接著,再在剩下的記錄中找關鍵字最小的記錄,並把它換在第二個位置上。依此類推,一直到所有的記錄都有序為止,實現起泡排序的函式如下:
#define MAXITEM 100
struct rec
{
KeyType key; /*關鍵字域*/
elemtype data; /*其他數據域*/
};
struct rec sqlist[MAXITEM];
void bubblesort(sqlist r,int n)
{
int i, j, w;
for(i=1;i<=n-1;i++)
for(j=n;j>=i+1;j--)
if(r&#91;j&#93;.key<r&#91;j-1&#93;.key) /*比較*/
{ /*r&#91;j&#93;與r&#91;j-1&#93;進行交換*/
w=r&#91;j&#93;;
r&#91;j&#93;=r&#91;j-1&#93;;
r&#91;j-1&#93;=w;
}
}
起泡排序算法的時間複雜度是O(n^2)。
-------------

相關詞條

相關搜尋

熱門詞條

聯絡我們