郝斌資料結構7排序之冒泡選擇

2021-09-13 01:49:14 字數 1089 閱讀 5097

一. 氣泡排序

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個

對每一對相鄰元素作同樣的工作。第一次後,最後的元素是最大的數

針對所有的元素重複以上的步驟,除了最後乙個

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較

二. 選擇排序

首先通過n-1 次比較,從n個數中找出最小的,將它與第1個數交換。第一次結束,最小的數放在第1個

再通過n-2次比較,從剩餘的n-1個數中找出最小的,將它與第二個數交換。

第二次結束,次小的數放在第2個

重複上述過程

區別在於:

冒泡演算法,每次比較如果發現較小的元素在後面,就交換兩個相鄰的元素

而選擇排序演算法的改進在於:

先並不急於調換位置,先從a[0]開始逐個檢查,看哪個數最小就記下該數所在的位置p。等一次 掃瞄完畢,再把a[p]和a[0]對調,這時a[0]到a[9]中最小的資料就換到了最前面。

所以,選擇排序每掃瞄一次陣列,只需要一次真正的交換,而冒泡可能需要很多次。但是他倆比 較的次數是一樣的。

一句話總結:選擇是通過下標改動來排,冒泡則直接交換。

程式如下:

郝斌老師 資料結構入門 之快速排序

include void quicksort int int,int int findpos int int,int 主要思想 通過移動和賦值的方式確定第乙個元素的最終位置,然後在用同樣的方法分別確定第乙個元素的最終位置的左邊一部分和右邊一部分的第乙個元素的最終位置,以此類推 intmain voi...

資料結構7 排序

理解選擇排序的不穩定性 選擇排序 氣泡排序 插入排序 public int charusort int intarr for int i 1 i intarr.length i return intarr 正確性檢測 test public void sorttest system.out.prin...

資料結構《一》 排序演算法之氣泡排序

氣泡排序可以說是最簡單,大多數人最先接觸的排序演算法。臨近的數字兩兩進行比較,按照規定的順序進行交換,這樣一趟過去後,最大或最小的數字就像氣泡一樣被 排 最後一位,然後第二趟之後,次大或次小的數字被 排 到倒數第二位,以此類推,直至第一位與第二位順序正確。實現過程如圖 氣泡排序複雜度為o n 過程如...