理论基础 —— 排序
【概述】
1.通常所說(shuō)的排序算法指的是內(nèi)部排序算法,即:數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序。
2.排序算法大體可分為兩種:
? ?1)非線性時(shí)間比較類(lèi)排序:交換類(lèi)排序、插入類(lèi)排序、選擇類(lèi)排序、歸并排序,時(shí)間復(fù)雜度O(nlogn) ~ O(n^2)。
? ?2)線性時(shí)間非比較類(lèi)排序:計(jì)數(shù)排序、基數(shù)排序和桶排序,時(shí)間復(fù)雜度可以達(dá)到O(n)。
3.總結(jié):?
? ?1)比較類(lèi)排序中,歸并排序號(hào)稱(chēng)最快,其次是快速排序和堆排序,兩者實(shí)際不相伯仲,但數(shù)據(jù)初始排序狀態(tài)對(duì)堆排序不會(huì)產(chǎn)生太大的影響,而快速排序卻恰恰相反。
? ?2)非比較類(lèi)排序一般要優(yōu)于比較類(lèi)排序,但前者對(duì)待排序元素的要求較為嚴(yán)格,比如:計(jì)數(shù)排序要求待排序數(shù)的最大值不能太大,桶排序要求元素分桶后桶內(nèi)元素的數(shù)量要均勻
? ?3)非比較類(lèi)排序的典型特點(diǎn)是以空間換時(shí)間。
【比較類(lèi)排序】
1.交換類(lèi)排序
1)冒泡排序
? ? ? ①原始冒泡排序:點(diǎn)擊這里
? ? ? ②雞尾酒排序:點(diǎn)擊這里
2)快速排序:點(diǎn)擊這里
2.插入類(lèi)排序
1)直接插入排序:點(diǎn)擊這里
2)希爾排序:點(diǎn)擊這里
3.選擇類(lèi)排序
1)直接選擇排序:點(diǎn)擊這里
2)堆排序:點(diǎn)擊這里
4.歸并排序
1)實(shí)現(xiàn):點(diǎn)擊這里
2)應(yīng)用:逆序?qū)?wèn)題:點(diǎn)擊這里
【非比較類(lèi)排序】
1.桶排序:點(diǎn)擊這里
2.計(jì)數(shù)排序:點(diǎn)擊這里
3.基數(shù)排序:點(diǎn)擊這里
【各種排序的比較】
總結(jié)
以上是生活随笔為你收集整理的理论基础 —— 排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 桁和 / Digit Sum(AtCod
- 下一篇: 理论基础 —— 线性表 —— 顺序表