模板 排序(二)

2021-07-31 16:45:23 字數 1554 閱讀 3736

#include

#include

#include

#include

#include

using

namespace

std;

int main()

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

a[j+1]=k;

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

return

0;}

//也蠻好懂得我就不多說了。

這個廠子主要給南和北兩個國家準備的,由於雙方大戰一出即發,他們的鋼材要求準備的特別快,但是因為需求量多,所以這個場子的容量也特別的大。

由於南與北對著幹,所以南要正的鋼材,北就要負的鋼材(咦還有負的鋼材嗎?)。

「啊……這把就頭疼了,雙方都需要快……冒泡魔法看樣子是不行了」勇者沮喪到。

「但是沒事啊,這裡地方大麼……不如我們多拿一些桶來吧,有奇用!」路由器神秘地說。

於是路由器拿了很多的桶,分別標號為-100~100,然後將如下的鋼材放在桶裡面「2 3 5 4 6 1 -1」,每個鋼材放在跟他們對應的桶裡面

「現在,按編號從大到小開啟每乙個桶,將裡面的鋼材拿出來!」

勇者知道最大的鋼材為6,於是從6的桶裡面找,拿出了6,又開啟了5,拿出了5……到1桶的時候什麼也沒有,跳過……到-1的桶,拿出-1,此時勇者知道-1是最小的了,於是他就不用再開啟剩下的桶了。

「哦!!!!我明白了我明白了!」勇者當場寫下了如下的魔法。經過路由器認定,是桶排序。複雜度是o(n)//另外說一下,路由器自我認為覺得應該是o(maxn-minn)……為什麼這樣寫呢,一會就知道了。

#include

#include

#include

#include

#include

using

namespace

std;

const

int inf=99999999;

int zheng[10000000]=,fu[10000000]=;

int main()

for(int i= maxn;i>= minn;i--)

}else}}

return

0;}

「可是……」勇者拿過了乙個訂單,「這個訂單手排都比你的排序魔法強啊。」上面就寫了兩個數。

「-10000000 10000000」。

「我暈……」路由器無奈,「那麼這就是桶排的乙個不足之處,事實上還可以優化,就假設十個桶吧,我們可以在桶裡放多個鋼材,但這些鋼材長度要符合桶上面的範圍,然後對每乙個桶進行排序,在那之後還是從大到小開桶拿出來就可以了。但是…………寫這個幹啥呢?任務已經可以過了,就不要浪費腦細胞想這個了,走吧!」

——————————————————————

於是勇者真的有那個腦子能成功嗎?請看下篇。

排序 快速排序 歸併排序模板 模板

正經人誰手寫這玩意?785.快速排序 本質 分治。是不穩定的排序演算法。時間複雜度 o n logn o nlogn o nlog n 空間複雜度 o l ogn o logn o logn 基於遞迴,用到棧空間 模板注意點 關於無限遞迴問題,大家動手模擬一遍樣例就能理解了。快排邊界問題很多,很煩 ...

排序 希爾排序模板

希爾排序又稱縮小增量排序 1 先取定乙個小於n的整數gap1作為第乙個增量,把整個序列分成gap1組。所有距離為gap1的倍數的元素放在同一組中,在各組內分別進行排序 分組內採用直接插入排序或其它基本方式的排序 一般gap1為n 2,一次往後類推 gap2 gap 2,若為奇數,則gap2 gap1...

排序 快速排序模板

以某個記錄 元素 為界 該記錄稱為支點或樞軸 將待排序列分成兩部分 一部分 所有記錄的關鍵字大於等於支點記錄的關鍵字 另一部分 所有記錄的關鍵字小於支點記錄的關鍵字 演算法描述 1 任取待排序記錄序列中的某個記錄 例如取第乙個記錄 作為基準 樞 按照該記錄的關鍵字大小,將整個記錄序列劃分為左右兩個子...