日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

排序算法选择准则

發布時間:2024/1/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 排序算法选择准则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(必看)選擇哪種排序算法,先參考這個網站查看排序速度演示https://www.toptal.com/developers/sorting-algorithms/

各種排序詳解可以參考http://sjjp.tjuci.edu.cn/sjjg/datastructure/ds/web/paixu/paixu8.1.1.1.htm

每種排序算法都各有優缺點。因此,在實用時需根據不同情況適當選用,甚至可以將多種方法結合起來使用。

選擇排序算法的依據

影響排序的因素有很多,平均時間復雜度低的算法并不一定就是最優的。相反,有時平均時間復雜度高的算法可能更適合某些特殊情況。同時,選擇算法時還得考慮它的可讀性,以利于軟件的維護。一般而言,需要考慮的因素有以下四點:

1.待排序的記錄數目n的大小;

2.記錄本身數據量的大小,也就是記錄中除關鍵字外的其他信息量的大小;

3.關鍵字的結構及其分布情況;

4.對排序穩定性的要求。

設待排序元素的個數為n.

1)當n較大,則應采用時間復雜度為O(nlog2n)的排序方法:快速排序、堆排序或歸并排序序。

?? 快速排序:是目前基于比較的內部排序中被認為是最好的方法,當待排序的關鍵字是隨機分布時,快速排序的平均時間最短;
?????? 堆排序 :? 如果內存空間允許且要求穩定性的,

?????? 歸并排序:它有一定數量的數據移動,所以我們可能過與插入排序組合,先獲得一定長度的序列,然后再合并,在效率上將有所提高。

2)? 當n較大,內存空間允許,且要求穩定性 =》歸并排序

3)當n較小,可采用直接插入或直接選擇排序。

??? 直接插入排序:當元素分布有序,直接插入排序將大大減少比較次數和移動記錄的次數。

??? 直接選擇排序 :元素分布有序,如果不要求穩定性,選擇直接選擇排序

5)一般不使用或不直接使用傳統的冒泡排序。

6)基數排序
它是一種穩定的排序算法,但有一定的局限性:
  1、關鍵字可分解。
  2、記錄的關鍵字位數較少,如果密集更好
  3、如果是數字時,最好是無符號的,否則將增加相應的映射復雜度

轉載于:https://www.cnblogs.com/xinlovedai/p/6225038.html

總結

以上是生活随笔為你收集整理的排序算法选择准则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。