Presentation is loading. Please wait.

Presentation is loading. Please wait.

氣泡排序法.

Similar presentations


Presentation on theme: "氣泡排序法."— Presentation transcript:

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 接著從第二個值找起,找到此數列中(不包含第一個)的最小值,再和第二個值交換。
接著從第三個值找起,找到此數列中(不包含第一、二個)的最小值,再和第三個值交換。 最後從第四個值找起,找到此數列中(不包含第一、二、三個)的最小值,再和第四個值交換,則此排序完成。


Download ppt "氣泡排序法."

Similar presentations


Ads by Google