AJPFX對選擇和冒泡兩種排序的理解

2021-09-23 02:01:38 字數 629 閱讀 3752

氣泡排序和直接選擇排序都是排序中比較簡單和容易實現的演算法,先簡單說說兩者的區別:先以按照元素從小到大為:

氣泡排序:將相鄰元素兩兩比較,如果有比較大的,就把比較大的放在右邊,這樣的結果就是一輪排序完畢後最大的數直接被放在了最右邊,然後從左邊第二個數開始比較,以此類推,直到倒數第二個數為止。

選擇排序:與氣泡排序不同,選擇排序採取的是從第二位開始檢查,如果發現有數最小就記下該數的為止,等到檢查完畢然後再把該數和第一位交換,所以選擇排序每一輪可能只要一次交換,而冒泡可能要交換很多次。兩者比較的次數相同,因此外層迴圈是一樣的。

具體來說,我們以陣列的排序為例

arr= ,其中arr[0]=4,arr[1]=3,arr[2]=2,arr[3]=1;

氣泡排序的**是:以上是老師提供的**

for(int i=0;iarr[j+1])}}

氣泡排序是對arr[0]到arr.length-i-1進行排序,這是一種內排序,範圍是逐漸縮小的

選擇排序

for(int i=0;iarr[j])

}選擇排序比起氣泡排序來說提高了一些效率,順便說1下氣泡排序最後一位不需要比較,選擇排序從i+1位開始比較,最後一位需要比較

選擇排序是a與a[i+1]到arr.length進行比較,這是一種外部排序

兩種經典排序(氣泡排序和選擇排序)

include void temp int i,int j 這種方法只能改變形參的值,不能真正的交換值 void bubble int num,int n 氣泡排序使陣列由小到大 void sort int num,int n 選擇排序使陣列由大到小 int i,j,k,temp for i 0 i...

js兩種排序 氣泡排序和選擇排序

氣泡排序 陣列中的元素兩兩進行比較,如果第乙個數比第二個數大,交換位置,第一輪結束後,最大值排在最後邊 進行第二輪的兩兩比較,第二大的值也能拍出來 以此類推 var arr 2,4,1,6,9,8 宣告乙個無序陣列 function bubblesort arr return arr bubbles...

兩種氣泡排序

泡泡往前冒 for int i 1 i score.length i 例如 for int i 1 i score.length i system.out.print 第 i 次排序的結果 for int j 0 j score.length j system.out.println for int...