排序演算法 氣泡排序 選擇排序

2021-08-21 02:50:24 字數 1870 閱讀 3598

1、氣泡排序

這個氣泡排序的原理就像水裡的魚吐泡泡一樣,起初是小一點的泡泡,然後越來越大,最後的最大。

演算法描述:

1)設待排序序列中的記錄的數為n

2)一般的,第i趟起泡排序從1到n-i+1

3)依次比較相鄰兩個記錄的數字,如果發生逆序,則交換

4)其結果是這n-i+1個記錄中,關鍵字最大的記錄被交換到n-i+1的位置上,最多進行n-1次

請看下圖

初識元素序列:8  3  2  5  9  4    6

第一趟排序:    3  2  5  8  4  6

第二趟排序:    2  3  5  4  6 【8  9】

第三趟排序:    2  3  4  5 【6  8  9】

第四趟排序:    2  3  4 【5  6  8  9】

第五趟排序:    2  3 【4  5  6  8  9】

第六趟排序:    2 【3  4  5  6  8  9】

**展示:

public class sortmethods

bubblesort(a);

print(a);

}//氣泡排序

private static void bubblesort(int a)}}

}private static void swap(inta,int i, int j)

private static void print(int a)

system.out.println();}}

演算法評價

1)時間複雜度:t(n)=o(n*n)

a.最好的情況(正序)

比較次數:n-1

移動次數:0

b.最壞的情況(逆序)

比較次數:1/2(n*n-n)

2、選擇排序

演算法描述:

//選擇排序

private static void selectsort(int a)

}

if(k! = j)

}

}

演算法評價:

1)時間複雜度:t(n)=o(n*n)

a.比較次數:1/2(n*n-n)

b.移動次數:

最好情況:0

最壞的情況:3(n-1)

排序演算法 冒泡 選擇排序

思路 1.從頭開始比較每一對相臨的元素,其後者比前者大則交換,直到一輪比較結束 2.排除1中找到最大的元素,重複1的步驟 class bubblesort 如果在某一趟比較後,序列就變得完全有序,此時就沒有必要再繼續比較下去 func sort2 if sorted 如果數列在尾部已經有序 部分有序...

排序演算法之氣泡排序 選擇排序

排序演算法有很多,包括插入排序,氣泡排序,堆排序,歸併排序,選擇排序,計數排序,基數排序,桶排序,快速排序等。插入排序,堆排序,選擇排序,歸併排序和快速排序,氣泡排序都是比較排序,它們通過對陣列中的元素進行比較來實現排序 其他排序演算法則是利用非比較的其他方法來獲得有關輸入陣列的排序資訊 氣泡排序 ...

排序演算法 冒泡和選擇排序

氣泡排序的基本思想是 通過對待排序序列從前向後 從下標較小的元素開始 依次比較 相鄰元素的值,若發現逆序則交換,使值較大的元素逐漸從前移向後部,就象水底下的氣泡一樣逐漸向上冒。氣泡排序演算法 public static int maopaosort int initial return initia...