第二章之「逆序對數目」(思考題2 4)

2021-06-02 19:07:56 字數 506 閱讀 7060

設計用時間複雜度為o(nlgn)的演算法對長度為n的陣列中的逆序對計數。

核心思想就是修改合併排序演算法,因為當合併時會比較兩個連續小陣列中元素的大小。

#include #include #include #define buffer_size 10

void merge(int *a,int p,int q,int r,int *cnt)

for(i=q+1,k=0;i<=r;i++)

for(i=p,j=0,k=0;i<=r;i++)

else

}}void mergesort(int *a,int p,int r,int *cnt)

q=(p+r)/2;

mergesort(a,p,q,cnt);

mergesort(a,q+1,r,cnt);

merge(a,p,q,r,cnt);

} void output(int *a,int len)

{ int i=0;

for(i=0;i

演算法導論第二章思考題

a.長度為k的陣列 時間複雜度為 k 共有n k個陣列 t n n k k nk b.2 i n k i lg n k 共有 lg n k 1層 每層合併陣列花費的時間為 n 合併所有子陣列的時間為 nlg n k c.要與原來歸併排序具有相同的執行時間 nlg n k nk c nlgn 當k逐漸...

MySQL入門之課後思考題第二章

主鍵是通過primary key定義的,它可以唯一標識表中的記錄。它的主要特徵如下 1唯一性 不能有重複值 2.非空性 不能有空值 sql語句 student stu id int,course id int,primary key stu id,course id 資料庫的索引好比新華字典的音序表...

程式設計珠璣之第二章習題2

問題描述 給定包含4 300 000 000個32位整數的順序檔案,如何找出乙個至少出現兩次的整數?問題解析 1 假設4 300 000 000個32整數的順序是隨機的。2 給定的32位整數的個數是4 300 000 000大於2 32 1,如果其中沒有任何乙個缺失的32整數,那麼重複整數個數就是 ...