01 氣泡排序

2022-07-10 01:51:16 字數 1334 閱讀 2067

已知一組無序資料a[1]、a[2]、……a[n],需將其按公升序排列。首先比較a[1]與a[2]的值,若a[1]大於a[2]則交換兩者的值,否則不變。

再比較a[2]與a[3]的值,若a[2]大於a[3]則交換兩者的值,否則不變。再比較a[3]與a[4],以此類推,最後比較a[n-1]與a[n]的值。

這樣處理一輪後,a[n]的值一定是這組資料中最大的。再對a[1]~a[n-1]以相同方法處理一輪,則a[n-1]的值一定是a[1]~a[n-1]中最大的。

再對a[1]~a[n-2]以相同方法處理一輪,以此類推。共處理n-1輪後a[1]、a[2]、……a[n]就以公升序排列了。

降序排列與公升序排列相類似,若a[1]小於a[2]則交換兩者的值,否則不變,後面以此類推。

總的來講,每一輪排序後最大(或最小)的數將移動到資料序列的最後,理論上總共要進行n(n-1)/2次交換。

優點:穩定

時間複雜度:理想情況下(陣列本來就是有序的),此時最好的時間複雜度為o(n),最壞的時間複雜度(資料反序的),此時的時間複雜度為o(n*n) 。

氣泡排序的平均時間負責度為o(n*n).

缺點:慢,每次只移動相鄰的兩個元素。

氣泡排序8;

15bubblesort(data);

16foreach (var temp in

data)

1720

console.readkey();21}

2223

//24

25///

26///

最底下元素對應最小索引

27///

28///

29static

void bubblesort(int

dataarray)

3043}44

}45}46

47//

從上到下

48//

static void bubblesort(int dataarray)

49//

60//}61

//}62//}63

}64 }

排序01 氣泡排序法

常見的演算法題 排序 排序分為很多種類,最常見的有氣泡排序法,簡單排序法,直接插入排序法等幾種排序法 氣泡排序法,是排序中最簡單和最常見的排序法。氣泡排序法是將相鄰的元素兩兩進行比對,將逆序的元素進行交換就行。時間複雜度 o n 2 如下 public class bubblesort int ar...

01。氣泡排序 桶排序

1 第乙個作業 氣泡排序 時間複雜度3個版本,用時間函式分別測算執行時間,保留編寫的 第二個作業 2 給出乙個字串中,分別統計每個英文本母的個數 英文本母,都是小寫字母 第三個作業 3 註冊部落格,然後 整理氣泡排序 氣泡排序的排序過程是怎樣的?氣泡排序的時間複雜度?冒牌排序優化?氣泡排序用在哪些地...

資料結構01 氣泡排序

在資料結構的演算法中,利用交換資料元素的位置進行排序的方法稱作為交換排序,而氣泡排序 就是常用的交換演算法之一。氣泡排序的基本思想 設陣列a中存放了n個資料元素,迴圈進行n 1趟如下的排序過程,從最後乙個元素開始比較,第一趟時,依次比較相鄰兩個資料元素 a i 和 a i 1 若為逆序,即a i 1...