一、十大經(jīng)典排序算法
排序算法是算法中最基本算法之一
首先我們要知道幾個(gè)相關(guān)的概念:
1. 時(shí)間復(fù)雜度(平均時(shí)間復(fù)雜度、最好情況、最壞情況)
2. 空間復(fù)雜度
3. 排序方式
4. 穩(wěn)定性
時(shí)間復(fù)雜度: 執(zhí)行算法需要的計(jì)算工作量
空間算法:執(zhí)行算法所需的內(nèi)存空間
排序方式:內(nèi)部排序和外部排序
穩(wěn)定性:排序后 2 個(gè)相等鍵值的順序和排序之前它們的順序相同
關(guān)于時(shí)間復(fù)雜度:
1.平方階(O(n2)):冒泡排序、選擇排序和插入排序
2.線性對(duì)數(shù)階(O(nlog2n)): 歸并排序、快速排序、堆排序和希爾排序
3.O(n+k):計(jì)數(shù)排序、桶排序
4.O(nxK):基數(shù)排序
穩(wěn)定性:
穩(wěn)定的排序方法:冒泡排序、插入排序,歸并排序和基數(shù)排序、計(jì)數(shù)排序、桶排序
不穩(wěn)定的排序方法: 選擇排序、快速排序、希爾排序、堆排序
十大排序具體內(nèi)容
二、七大經(jīng)典查找算法
查找算法:是在信息中找到特定的信息元素。
- 查找算法分類(lèi):
- 靜態(tài)查找 和 動(dòng)態(tài)查找
??注:靜態(tài)或動(dòng)態(tài)是針對(duì)被查找表而言的,動(dòng)態(tài)查找:被查找數(shù)組(表)中有刪除和插入等操作
- 無(wú)序查找 和 有序查找
??無(wú)序查找:被查找的數(shù)組(表)有序無(wú)序均可。
??有序查找:被查找的數(shù)組(表)必須是有序
- 平均查找長(zhǎng)度(Average Search Length ASL):查找的值Value 和 比較的關(guān)鍵值的個(gè)數(shù)的期望值(簡(jiǎn)單說(shuō):查找成功次數(shù)的期望值)
查找成功的平均查找長(zhǎng)度為:
ASL = PiCi;*
??Pi:查找表中第i個(gè)數(shù)據(jù)元素的概率。
??Ci:找到第i個(gè)數(shù)據(jù)元素時(shí)已經(jīng)比較過(guò)的次數(shù)。
七大查找具體內(nèi)容
本倉(cāng)庫(kù)持續(xù)更新中……
對(duì)一個(gè)的github地址:https://github.com/FlameDream/Learn_Algorithm