Download presentation
Presentation is loading. Please wait.
1
氣泡排序法
2
氣泡排序法 氣泡排序法又稱為交換排序法,是由觀察水中氣泡變化構思而成,氣泡隨著水深壓力而改變。
氣泡排序法的比較方式是由第一個元素開始,比較相鄰元素大小,若大小順序有誤,則對調後再進行下一個元素的比較。 如此掃瞄過一次之後就可確保最後一個元素是位於正確的順序。 接著再逐步進行第二次掃瞄,直到完成所有元素的排序關係為止。
3
氣泡排序法演算流程 由小到大排序:
4
第一次掃瞄會先拿第一個元素6和第二個元素4作比較,如果第二個元素小於第一個元素,則作交換的動作。
接著拿6和9作比較,就這樣一直比較並交換,到第4次比較完後即可確定最大值在陣列的最後面。
5
第二次掃瞄亦從頭比較起,但因最後一個元素在第一次掃瞄就已確定是陣列最大值,故只需比較3次即可把剩餘陣列元素的最大值排到剩餘陣列的最後面。
6
第三次掃瞄完,完成三個值的排序 第四次掃瞄完,即可完成所有排序 由此可知5個元素的氣泡排序法必須執行5-1次掃瞄,第一次掃瞄需比較5-1次,共比較 =10次
7
核心程式碼 原理:兩兩互相比較 for(i=0;i<max-1;i++) //外迴圈數
for(j=i;j<max;j++) //內迴圈數,兩兩比較 if(arr[i]>arr[j]) //由小至大排,交換判斷 { temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; }
8
選擇排序法 選擇排序法可使用兩種方式排序,一為在所有的資料中,當由大至小排序,則將最大值放入第一位置;若由小至大排序時,則將最大值放入位置末端。 例如當N筆資料需要由大至小排序時,首先以第一個位置的資料,依次向2、3、4 …N個位置的資料作比較。 如果資料大於或等於其中一個位置,則兩個位置的資料不變;若小於其中一個位置,則兩個位置的資料互換。
9
排序法的演算流程 首先找到此數列中最小值後與第一個元素交換。
10
接著從第二個值找起,找到此數列中(不包含第一個)的最小值,再和第二個值交換。
接著從第三個值找起,找到此數列中(不包含第一、二個)的最小值,再和第三個值交換。 最後從第四個值找起,找到此數列中(不包含第一、二、三個)的最小值,再和第四個值交換,則此排序完成。
Similar presentations