排序方法彙總

2021-06-25 12:07:16 字數 914 閱讀 4762

氣泡排序是非常容易理解和實現,,以從小到大排序舉例:

設陣列長度為n。

1.比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。

2.這樣對陣列的第0個資料到n-1個資料進行一次遍歷後,最大的乙個資料就「沉」到陣列第n-1個位置。

3.n=n-1,如果n不為0就重複前面二步,否則排序完成。

按照定義很容易寫出**:

[cpp]view plain

copy

//氣泡排序1

void

bubblesort1(

inta, 

intn)    

下面對其進行優化,設定乙個標誌,如果這一趟發生了交換,則為true,否則為false。明顯如果有一趟沒有發生交換,說明排序已經完成。

[cpp]view plain

copy

//氣泡排序2

void

bubblesort2(

inta, 

intn)  

k--;  

}  }  

再做進一步的優化。如果有100個數的陣列,僅前面10個無序,後面90個都已排好序且都大於前面10個數字,那麼在第一趟遍歷後,最後發生交換的位置必定小於10,且這個位置之後的資料必定已經有序了,記錄下這位置,第二次只要從陣列頭部遍歷到這個位置就可以了。

[cpp]view plain

copy

//氣泡排序3

void

bubblesort3(

inta, 

intn)  

}  }  

氣泡排序畢竟是一種效率低下的排序方法,在資料規模很小時,可以採用。資料規模比較大時,最好用其它排序方法。

java各種排序方法彙總

2.選擇排序 3.插入排序 4.歸併排序 5.快速排序 public class demoarr1 int temp for int i 0 i arr.length 1 i 迴圈遍歷輸出 for int a arr public class demoarr11 scanner superman n...

c語言排序方法彙總

先更新到這裡,之後會持續更新 三連再看,月入百萬。在接下來的排序方法中,我們都採用4 1 2 6 5 3這個數列作為我們的栗子41 2653 1124 5362 1243 5631 2345 6412 3456 5123 456氣泡排序的本質就是每次將前n i個數中的最大值換到第n i 1位上去 如...

面試題彙總 排序方法

氣泡排序,選擇排序,快速排序,插入排序,基數排序,桶排序 依次比較相鄰的兩個數,將小數放在前面,大數放在後面 氣泡排序,具有穩定性 時間複雜度為o n 2 public class main system.out.print 排序前的陣列為 for int i sort system.out.pri...