原文中說,使用原地歸併,能夠讓歸併排序的空間複雜度降為o(1),但我覺得應該還要考慮歸併排序遞迴呼叫時棧上消耗的空間。所以整體空間複雜度應該是o(log n)。
以下**中對原地歸併排序和普通歸併排序的速度進行了對比。普通歸併速度大概是原地歸併的30倍。
#include#include#include#includeusing namespace std;
void insert_sort(int arr,int n)
arr[j+1]=val; }}
void aux_merge(int arr,int n,int m,int aux)
else
}else
break;
} else
dst--; }}
void local_merge(int arr,int n)
{ int m=sqrt((float)n);
int k=n/m;
for(int i=0;i
百度2013筆試題
一 簡答題 30 1 資料庫以及執行緒發生死鎖的原理及必要條件,如何避免死鎖答 產生死鎖的原因主要是 1 因為系統資源不足。2 程序執行推進的順序不合適。3 資源分配不當等。產生死鎖的四個必要條件 1 互斥條件 乙個資源每次只能被乙個程序使用。2 請求與保持條件 乙個程序因請求資源而阻塞時,對已獲得...
百度筆試題
一 選擇題 15分 共10題 1.在排序方法中,關鍵碼比較次數與記錄地初始排列無關的是 a.shell排序 b.歸併排序 c.直接插入排序 d.選擇排序 2.以下多執行緒對int型變數x的操作,哪幾個需要進行同步 a.x y b.x c.x d.x 1 3.void func 中,變數val的記憶體...
百度筆試題
一 選擇題 15分 共10題 1.已知乙個線性表 38,25,74,63,52,48 採用的雜湊函式為hash key key mod 7,將元素雜湊到表長為7的雜湊表中儲存。請選擇後面兩種衝突解決方法分別應用在該雜湊表上進行等概率成功查詢的平均查詢長度,拉鍊法 線性探測法 a.1.0 b.1.5 ...