幾個好用的排序方法?

2021-10-21 11:53:13 字數 1036 閱讀 3835

感覺到編寫**過程中時常會用到排序,但是有些時候對於執行時間的要求會導致一些排序演算法沒有辦法使用

1.氣泡排序應該是最好理解也是比較簡單寫出來的方法

思路就是從第乙個元素開始,前乙個和後乙個比較大小(排序方式當然自己決定),之後換位置就好了。

主要就是兩個迴圈,內層 j 迴圈就是從0開始一直比較直到 n-i 。為什麼是n-i呢,這是為了減少重複工作。因為第一次做這個迴圈的時候可以看做從0到n-1都比較了一次,已經確定了最後乙個位置的數是多少,就不需要再判斷了。

直觀一點 29 12 43 67 23

29>12交換 12 29 43 67 23

29<43 不交換 12 29 43 67 23

43<67 不交換12 29 43 67 23

67>23 交換 12 29 43 23 67

所以說最大的就到最後了嘛,所以下一次就不用比n-2和n-1位置的數了。

void

bubblesort

(int score,

int n)}}

}

雖然簡單,代價就是複雜度太大了,畢竟兩層巢狀的迴圈,怎麼想都不會太低。

選擇排序,插入排序就沒必要了(除非指定用),不然按照上面表裡面的資料來看,三者基本差不多,那為什麼不選簡單的氣泡排序呢

2.希爾排序

這個理解起來有一點困難

通常來說,排序都是前乙個比後乙個比個大小交換位置。希爾排序就腦洞大開,索性不前乙個比後乙個了,直接把整個陣列分成n/2個,n/4個,n/8個。。。最後是前後相鄰排序。

幾個好用的副詞

1.relatively rel t vli 相對的例如 relatively good 相對來說比較好 that cell phone is relatively nice looking 那台手機相對來說好看點 2.extremely k stri mli 相當的例如 this sofa is ...

Hashmap排序的幾個方法

假設有這樣的類 如下 示例 class student public string tostring hashmap map newhashmap map.put 1003 new student 1003 sam map.put 1005 new student 1005 joseph map.p...

幾個好用的vim外掛程式

1.winmanager 可將檔案瀏覽器 buffer列表整合在側邊欄,它依賴於bufexplorer 2.nerdtree 樹狀目錄外掛程式,比winmanager的檔案瀏覽更美觀。3.txtbrowser 純文字瀏覽,為純文字自動生成目錄樹側邊欄 taglist視窗 語法高亮等,用來看txt文件...