排序演算法一覽

2021-07-23 21:47:05 字數 1960 閱讀 4275

總述:

排序,初賽知識點之一,都敲了一遍,供初賽複習。

此處收錄了10 9種常見排序演算法。只給出部分程式**,讀入一律使用rd函式,輸出為pf。

計數排序。穩定,複雜度o(

n+m)

rd(n);

while(n--)

for(int i=1;i

<=10;i++)

for(int j=1;j

<=cnt[i];j++)

pf(i);

選擇排序。不穩定,複雜度o(

n2)

rd(n);

for(int i=1;i

<=n;i++)rd(a[i]);

for(int i=1;i

<=n;i++)

for(int i=1;i<=n;i++)

pf(a[i]);

插入排序。穩定,複雜度o(

n2)

rd(n);

a[0]=-inf;

for(int i=1;i<=n;i++)

}}for(int i=1;i<=n;i++)

pf(a[i]);

基數排序。穩定,複雜度o(

n∗m)

int d=1;

rd(n);

for(int i=1;i<=n;i++)rd(a[i]),a[i]+=max;

for(int i=0;i<=9;i++)

intm=0;

for(int j=0;j<=9;j++)

for(int k=1;k<=s[j][0];k++)

a[++m]=s[j][k];

d*=10;}

for(int i=1;i<=n;i++)pf(a[i]-max);

歸併排序。穩定,複雜度o(

nlog

n)

void merge(int l,int r)

while(i<=mid)t[t++]=a[i++];

while(j<=r)t[t++]=a[j++];

for(int i=l;i<=r;i++)a[i]=t[i];

}int main()

快速排序。不穩定,複雜度o(

nlog

n)

void qsort(int l,int r)

int main()

希爾排序。不穩定,複雜度o(

n1.5

)

rd(n);

for(int i=1;i<=n;i++)rd(a[i]);

for(int

step=n/2;step>=1;step/=2)

for(int i=step;i<=n;i++)

if(a[i-step]>a[i])

a[t+step]=tmp;

}for(int i=1;i<=n;i++)pf(a[i]);

堆排序。不穩定,複雜度o(

nlog

n)

void up(int x)

}void down(int x)

}int main()

for(int i=1

;i<=n;i++)

return0;

}

sort(c++stl)。(自帶光環)速度奇快。

rd(n);

for(int i=1;i

<=n;i++)rd(a[i]);

sort(a+1,a+n+1);

for(int i=1;i

<=n;i++)pf(a[i]);

常用排序演算法一覽表

常用排序演算法 類別排序方法 時間複雜度 空間複雜度 穩定性平均情況 最好情況 最壞情況 輔助儲存 氣泡排序 直接冒泡 o n2 o n o n2 o 1 穩定雞尾酒排序 o n1 2 o n o n2 o 1 穩定選擇排序 o n2 o n2 o n2 o 1 不穩定插入排序 直接插入 o n2 ...

機器學習流行演算法一覽

這篇文章介紹幾個最流行的機器學習演算法。現在有很多機器學習演算法,困難的是進行方法歸類,這裡我們介紹兩種方法進行思考和分類這些演算法。第一組演算法是學習風格,第二組是在形式和功能上類似。乙個演算法基於問題建模有不同的方法,無論這個問題是基於經驗或環境的互動,或者是基於我們需要輸入的資料,學習風格是機...

AI 演算法崗工資一覽

年初,我從招聘 上了解到,各網際網路大廠,演算法崗競爭相當激烈,供大於求。藉著金三銀四,跟大家科普幾個 ai 崗位,看著適合自己的趕緊去投簡歷啊!1.人工智慧 機器學習領域究竟多火?從各大公司紛紛建立自己的人工智慧研究院,以及高薪吸納人才的手段便可了解人工智慧 機器學習有多火。阿里星計畫 年薪平均估...