1 / 10

氣泡排序法

氣泡排序法. 氣泡排序法. 氣泡排序法又稱為交換排序法,是由觀察水中氣泡變化構思而成,氣泡隨著水深壓力而改變。 氣泡排序法的比較方式是由第一個元素開始,比較相鄰元素大小,若大小順序有誤,則對調後再進行下一個元素的比較。 如此掃瞄過一次之後就可確保最後一個元素是位於正確的順序。 接著再逐步進行第二次掃瞄,直到完成所有元素的排序關係為止。. 氣泡排序法演算流程. 由小到大排序:. 第一次掃瞄會先拿第一個元素 6 和第二個元素 4 作比較,如果第二個元素小於第一個元素,則作交換的動作。

lena
Télécharger la présentation

氣泡排序法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 氣泡排序法

  2. 氣泡排序法 • 氣泡排序法又稱為交換排序法,是由觀察水中氣泡變化構思而成,氣泡隨著水深壓力而改變。 • 氣泡排序法的比較方式是由第一個元素開始,比較相鄰元素大小,若大小順序有誤,則對調後再進行下一個元素的比較。 • 如此掃瞄過一次之後就可確保最後一個元素是位於正確的順序。 • 接著再逐步進行第二次掃瞄,直到完成所有元素的排序關係為止。

  3. 氣泡排序法演算流程 • 由小到大排序:

  4. 第一次掃瞄會先拿第一個元素6和第二個元素4作比較,如果第二個元素小於第一個元素,則作交換的動作。第一次掃瞄會先拿第一個元素6和第二個元素4作比較,如果第二個元素小於第一個元素,則作交換的動作。 • 接著拿6和9作比較,就這樣一直比較並交換,到第4次比較完後即可確定最大值在陣列的最後面。

  5. 第二次掃瞄亦從頭比較起,但因最後一個元素在第一次掃瞄就已確定是陣列最大值,故只需比較3次即可把剩餘陣列元素的最大值排到剩餘陣列的最後面。第二次掃瞄亦從頭比較起,但因最後一個元素在第一次掃瞄就已確定是陣列最大值,故只需比較3次即可把剩餘陣列元素的最大值排到剩餘陣列的最後面。

  6. 第三次掃瞄完,完成三個值的排序 • 第四次掃瞄完,即可完成所有排序 • 由此可知5個元素的氣泡排序法必須執行5-1次掃瞄,第一次掃瞄需比較5-1次,共比較4+3+2+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. 接著從第二個值找起,找到此數列中(不包含第一個)的最小值,再和第二個值交換。接著從第二個值找起,找到此數列中(不包含第一個)的最小值,再和第二個值交換。 • 接著從第三個值找起,找到此數列中(不包含第一、二個)的最小值,再和第三個值交換。 • 最後從第四個值找起,找到此數列中(不包含第一、二、三個)的最小值,再和第四個值交換,則此排序完成。

More Related