五種排序方法總結

2021-06-26 21:58:44 字數 1245 閱讀 7539

此次介紹的是五種排序的方法:

1.氣泡排序

2.選擇排序

3.快速排序

4.插入排序

5。二分查詢

1:冒泡法,即利用相鄰的兩個數之間來比較達到交換的目的 從而把最大或最小的數 

移到某一邊。故而 此種方法要 進行多個趟次與比較多次。

例如:n個數字,則要進行n-1趟比較。在第m趟中要進行n-m次兩兩之間的比較。(n>m)

2:選擇排序法,即先通過找到滿足你想要的條件的位置後,記錄下該位置。再把該位

置交換到你想要的某個位置上。

例如:在1 6 8 3 9 4 這串數字中。 你如果要按公升序(降序)排序,即要把最大(最小)

的放在最後乙個位置。則先通過兩兩之間的比較,但並不同冒泡法一樣的交換,而是

記錄下較大(較小)的位置,再與下乙個進行比較,直到尋找到最大(最小)的數的那個

位置。後再與最後乙個數字交換位置。但還需注意此個條件:如果本身第乙個或最後

乙個數就是最大(最小)的數,就不必交換了。故而if(k!=i) 此個判斷條件要用上。

3.快排法:即快速排序。但此次,我介紹的是應用結構體與快排結合來達到排序的效

果。首先是結構體的建立。例:

以  bool cmp(point a,point b) 為例

定義結構體的使用方式 如何使用來達到排序的作用

其次是在排序過程中 例:

sort(c,c+n,cmp) c可以是之前定義好的陣列 而n則是個數的多少 cmp則是快排的排列

順序按之前設定好的結構體的形式

這樣就可以把你的輸入數字按照你想要的cmp的順序排序好 這樣的處理可以節約你對

做題排序題目的思考。

4.插入排序,即在給定的一串數字中,再插入某個數字,後再按一定的順序輸出。在

這裡,介紹兩種解題方法。

first:你可以把給定的數字先排序好放入陣列,後再用查詢的方式,找到符合條件放

進去的位置,後再把你插入位置後排序好的陣列都後退乙個位置。即a[i]=a[i-1].

last:先把給定的數字輸入陣列,注意:是先從a[1]放第乙個數字,把a[0]空餘出來。

把數字放好後,再把要插入的數字放在a[0],然後就可以用之前介紹的某個排序方法

,把a[0]到a[n]按順序排序後輸出了。

提是在已經排序好的數字中才能應用。

首先,是找到中間數min,再通過你要查詢的數與中間數的比較,如果你要找的數字

(m>min)則向右邊查詢,如果(m此種方法可以節約查詢到效果所要的時間。

五種排序的方法

四種方法如下 氣泡排序 選擇排序 插入排序 快速排序 內建函式排序 for i in range 7,1,1 左閉右開區間,每次減一 print i 各種排序方法進行比較 defshowdata data for i in range len data print 2f data i end 選擇排...

八種排序方法總結

一 穩定性 穩定 氣泡排序 插入排序 歸併排序和基數排序 不穩定 選擇排序 快速排序 希爾排序 堆排序 二 平均時間複雜度 o n 2 直接插入排序,簡單選擇排序,氣泡排序。在資料規模較小時 9w內 直接插入排序,簡單選擇排序差不多。當資料較大時,氣泡排序演算法的時間代價最高。效能為o n 2 的演...

C 五種排序方法(有參考)

資料結構選擇 陣列 概要設計 定義乙個容量為一億個整數的陣列,定義變數n,用rand函式生成n個隨機數,並賦值給陣列,用clock函式計算排序所用時間。編寫排序函式和主函式。include include include using namespace std int a 100000000 n v...