亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

算法之排序算法的算法思想和使用場景總結

2020-01-26 15:22:00
字體:
來源:轉載
供稿:網友

1. 概述

排序算法是計算機技術中最基本的算法,許多復雜算法都會用到排序。盡管各種排序算法都已被封裝成庫函數供程序員使用,但了解排序算法的思想和原理,對于編寫高質量的軟件,顯得非常重要。

本文介紹了常見的排序算法,從算法思想,復雜度和使用場景等方面做了總結。

2. 幾個概念

(1)排序穩定:如果兩個數相同,對他們進行的排序結果為他們的相對順序不變。例如A={1,2,1,2,1}這里排序之后是A = {1,1,1,2,2} 穩定就是排序后第一個1就是排序前的第一個1,第二個1就是排序前第二個1,第三個1就是排序前的第三個1。同理2也是一樣。不穩定就是他們的順序與開始順序不一致。

(2)原地排序:指不申請多余的空間進行的排序,就是在原來的排序數據中比較和交換的排序。例如快速排序,堆排序等都是原地排序,合并排序,計數排序等不是原地排序。

總體上說,排序算法有兩種設計思路,一種是基于比較,另一種不是基于比較?!端惴▽д摗芬粫o出了這樣一個證明:“基于比較的算法的最優時間復雜度是O(N lg N)”。對于基于比較的算法,有三種設計思路,分別為:插入排序,交換排序和選擇排序。非基于比較的排序算法時間復雜度為O(lg N),之所以復雜度如此低,是因為它們一般對排序數據有特殊要求。如計數排序要求數據范圍不會太大,基數排序要求數據可以分解成多個屬性等。

3. 基于比較的排序算法

正如前一節介紹的,基于比較的排序算法有三種設計思路,分別為插入,交換和選擇。對于插入排序,主要有直接插入排序,希爾排序;對于交換排序,主要有冒泡排序,快速排序;對于選擇排序,主要有簡單選擇排序,堆排序;其它排序:歸并排序。

3.1  插入排序

(1) 直接插入排序
特點:穩定排序,原地排序,時間復雜度O(N*N)
思想:將所有待排序數據分成兩個序列,一個是有序序列S,另一個是待排序序列U,初始時,S為空,U為所有數據組成的數列,然后依次將U中的數據插到有序序列S中,直到U變為空。

適用場景:當數據已經基本有序時,采用插入排序可以明顯減少數據交換和數據移動次數,進而提升排序效率。

(2)希爾排序

特點:非穩定排序,原地排序,時間復雜度O(n^lamda)(1 < lamda < 2), lamda和每次步長選擇有關。

思想:增量縮小排序。先將序列按增量劃分為元素個數近似的若干組,使用直接插入排序法對每組進行排序,然后不斷縮小增量直至為1,最后使用直接插入排序完成排序。

適用場景:因為增量初始值不容易選擇,所以該算法不常用。

3.2  交換排序

(1)冒泡排序

特點:穩定排序,原地排序,時間復雜度O(N*N)
思想:將整個序列分為無序和有序兩個子序列,不斷通過交換較大元素至無序子序列首完成排序。

適用場景:同直接插入排序類似

(2)快速排序

特點:不穩定排序,原地排序,時間復雜度O(N*lg N)
思想:不斷尋找一個序列的樞軸點,然后分別把小于和大于樞軸點的數據移到樞軸點兩邊,然后在兩邊數列中繼續這樣的操作,直至全部序列排序完成。

適用場景:應用很廣泛,差不多各種語言均提供了快排API

3.3  選擇排序

(1)簡單選擇排序

特點:不穩定排序(比如對3 3 2三個數進行排序,第一個3會與2交換),原地排序,時間復雜度O(N*N)

思想:將序列劃分為無序和有序兩個子序列,尋找無序序列中的最?。ù螅┲岛蜔o序序列的首元素交換,有序區擴大一個,循環下去,最終完成全部排序。

適用場景:交換少

(2) 堆排序

特點:非穩定排序,原地排序,時間復雜度O(N*lg N)
思想:小頂堆或者大頂堆
適用場景:不如快排廣泛

3.4  其它排序

(1) 歸并排序

特點:穩定排序,非原地排序,時間復雜度O(N*N)
思想:首先,將整個序列(共N個元素)看成N個有序子序列,然后依次合并相鄰的兩個子序列,這樣一直下去,直至變成一個整體有序的序列。
適用場景:外部排序

4. 非基于比較的排序算法

非基于比較的排序算法主要有三種,分別為:基數排序,桶排序和計數排序。這些算法均是針對特殊數據的,不如要求數據分布均勻,數據偏差不會太大。采用的思想均是內存換時間,因而全是非原地排序。

4.1 基數排序

特點:穩定排序,非原地排序,時間復雜度O(N)

思想:把每個數據看成d個屬性組成,依次按照d個屬性對數據排序(每輪排序可采用計數排序),復雜度為O(d*N)

適用場景:數據明顯有幾個關鍵字或者幾個屬性組成

4.2  桶排序

特點:穩定排序,非原地排序,時間復雜度O(N)

思想:將數據按大小分到若干個桶(比如鏈表)里面,每個桶內部采用簡單排序算法進行排序。

適用場景:0

4.3  計數排序

特點:穩定排序,非原地排序,時間復雜度O(N)

思想:對每個數據出現次數進行技術(用hash方法計數,最簡單的hash是數組?。缓髲拇蟮叫』蛘邚男〉酱筝敵雒總€數據。

使用場景:比基數排序和桶排序廣泛得多。

5.  總結

對于基于比較的排序算法,大部分簡單排序(直接插入排序,選擇排序和冒泡排序)都是穩定排序,選擇排序除外;大部分高級排序(除簡單排序以外的)都是不穩定排序,歸并排序除外,但歸并排序需要額外的存儲空間。對于非基于比較的排序算法,它們都對數據規律有特殊要求 ,且采用了內存換時間的思想。排序算法如此之多,往往需要根據實際應用選擇最適合的排序算法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av中文字幕在线| 欧洲美女免费图片一区| 国产精品视频永久免费播放| 性色av一区二区三区红粉影视| 日韩一区二区欧美| 亚洲一品av免费观看| 亚洲免费伊人电影在线观看av| 国产99久久精品一区二区永久免费| 久久精品国产亚洲一区二区| 亚洲久久久久久久久久| 日韩av中文字幕在线播放| 自拍亚洲一区欧美另类| 亚洲а∨天堂久久精品喷水| 精品国产999| 午夜精品一区二区三区av| 亚洲成人久久一区| 日韩中文在线中文网在线观看| 亚洲人成网站777色婷婷| 欧美精品第一页在线播放| 亚洲天天在线日亚洲洲精| 日韩av电影在线播放| 欧美午夜久久久| 日韩av在线一区二区| 97在线视频免费看| 久久久国产精品一区| 国产精品成熟老女人| 国产91精品黑色丝袜高跟鞋| 亚洲999一在线观看www| 上原亚衣av一区二区三区| 深夜福利91大全| 亚洲人在线观看| 青青久久av北条麻妃黑人| 亚洲美女av在线| 国产精品久久久91| 欧美黑人性生活视频| 日韩精品在线观看网站| 亚洲国产日韩欧美在线动漫| 久久国产一区二区三区| 狠狠久久亚洲欧美专区| 亚洲精品av在线| 日韩av在线最新| 欧美做受高潮电影o| 日韩精品亚洲元码| 国产69精品久久久久9| 一本一本久久a久久精品综合小说| 亚洲人成毛片在线播放| 亚洲free性xxxx护士hd| 久久久爽爽爽美女图片| 久久久久国产一区二区三区| 一区二区av在线| 亚洲iv一区二区三区| 亚洲欧美三级在线| 乱亲女秽乱长久久久| 日本一区二区不卡| 精品国内亚洲在观看18黄| 国产精品免费久久久| 亚洲午夜久久久久久久| 2019国产精品自在线拍国产不卡| 国产精品免费视频久久久| 欧美日韩黄色大片| 3344国产精品免费看| 久久手机免费视频| 97国产真实伦对白精彩视频8| 亚洲精美色品网站| 5566日本婷婷色中文字幕97| 欧美激情在线狂野欧美精品| 国内免费久久久久久久久久久| 欧美床上激情在线观看| 久久天堂av综合合色| 成人自拍性视频| 亚洲乱码av中文一区二区| 91免费电影网站| 亚洲国产精彩中文乱码av在线播放| 亚洲四色影视在线观看| 国语自产精品视频在线看抢先版图片| 日韩欧美中文字幕在线观看| 国内精品模特av私拍在线观看| 国产日韩中文字幕在线| 亚洲男人第一av网站| 人人爽久久涩噜噜噜网站| 国产日韩欧美黄色| 国产欧美一区二区三区在线| 久久亚洲综合国产精品99麻豆精品福利| 欧美在线激情网| 91av在线视频观看| 欧美亚洲视频在线看网址| 久久亚洲欧美日韩精品专区| 日本精品中文字幕| 日韩在线资源网| 亚洲天堂男人天堂女人天堂| 亚洲美女中文字幕| 久久精品国产免费观看| 欧美一区二区三区免费观看| 精品久久久久久久大神国产| 国产成人a亚洲精品| 高跟丝袜欧美一区| 欧美激情精品久久久久久久变态| 亚洲天堂av综合网| 亚洲国产精品va在线看黑人动漫| 欧美贵妇videos办公室| 国产91ⅴ在线精品免费观看| 亚洲精品自在久久| 久久偷看各类女兵18女厕嘘嘘| 欧美大片在线免费观看| 2019中文字幕全在线观看| 2024亚洲男人天堂| 日韩视频―中文字幕| 欧美日韩国产91| 国产精品扒开腿做| 久久久久一本一区二区青青蜜月| 一本大道香蕉久在线播放29| 久久久久久香蕉网| 久久久久久国产精品久久| 91av在线看| 91av在线看| 国产精品91一区| 欲色天天网综合久久| 日韩在线中文视频| 亚洲精品日韩丝袜精品| 国产日韩精品入口| 亚洲精美色品网站| 欧美视频中文在线看| 国产精品永久免费观看| 日韩美女免费观看| 欧美极品在线视频| 日韩在线不卡视频| 2018国产精品视频| 欧美日韩中文字幕| 欧美一级免费视频| 欧美日韩国产一区在线| 91九色国产社区在线观看| 在线看日韩欧美| 久久久久日韩精品久久久男男| 欧美精品videossex88| 国产日韩欧美综合| 久久av中文字幕| 亚洲人成电影网站色xx| 亚洲一区二区三区777| www国产亚洲精品久久网站| 日韩毛片在线观看| 国内偷自视频区视频综合| 亚洲精品国产精品久久清纯直播| 成人h视频在线| 国产精品精品久久久| 日韩在线视频播放| 亚洲欧美另类在线观看| 成人av资源在线播放| 亚洲一区二区三区四区在线播放| 91九色国产视频| 在线观看久久av| 国产日韩欧美日韩大片| 日韩国产精品亚洲а∨天堂免| 17婷婷久久www| 日韩精品日韩在线观看| 日本一区二区在线免费播放| 亚洲国产另类久久精品| 亚洲一区免费网站| 色婷婷综合成人av| 亚洲免费成人av电影| 这里只有视频精品| 欧美精品一区二区三区国产精品| 亚洲欧洲日本专区| 亚洲新声在线观看| 欧洲精品毛片网站|