C語言排序演算法 氣泡排序演算法

2022-09-13 03:30:08 字數 648 閱讀 3896

氣泡排序是一種交換排序,基本思想是:相鄰兩兩比較,若反序則交換。

定義交換操作函式:

1

void swap(int *p, int i, intj)2

基本排序演算法:

思想:i=0時,p[i]依次與後面的元素比較,如果後面的元素小,則交換位置,繼續比較,直到將最小的元素交換到第乙個位置,再從第二個開始與後面的比較。

缺點:效率低。

1

void basesort0(int *p)212

}13}14 }

氣泡排序演算法:

相鄰兩兩比較。從序列後面開始向前冒泡,兩兩比較,反序交換位置。

1

void bubblesort1(int *p)212

}13}14 }

優化:

1

void bubblesort2(int *p)215

}16}17 }

複雜度:

最好情況:序列本身是有序的,根據最後優化的**,比較次數為n-1,沒有資料交換,時間複雜度o(n)

最壞情況:序列本身是逆序的,需要比較1+2+3+...+(n-1)=n(n-1)/2次,並進行等數量級的記錄移動,時間複雜度為o(n2)

C語言 氣泡排序演算法

重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,故名。void swap int a,int b int main int ...

C語言 氣泡排序演算法

氣泡排序演算法 基本思想 相鄰位置元素兩兩比較,順序相反則進行交換,每一輪會將最小或最大的元素 浮 到頂端,最終達到完全有序。排序原理圖 演算法實現 include void bubblesort int arr,int sz if flag 1 break void printarr int ar...

C語言 氣泡排序演算法

目的 將輸入的陣列按照從小到大氣泡排序。思路 從第1個數開始,依次與後乙個數比較,將最大的乙個數放在最後 繼續從第1個數開始,依次與後乙個比較,將最大的乙個數倒數第二個 依次類推 int bubble int a,int n return0 brief 測試冒泡程式 author mculover6...