題目描述1:有兩個排序的陣列a1和a2,內存在a1的末尾有足夠多的空餘空間容納a2。請實現乙個函式,把a2中的所有數字插入a1中,並且所有的數字是排序的。
void mergelist(int la,int a_length,int lb,int b_length)
for (int i = 0; i < a_length-1; i++)
}for (int i = 0; i < b_length - 1; i++)
}int m_length = a_length + b_length;
int a_index = a_length - 1;
int b_index = b_length - 1;
int m_index = m_length - 1;
while (a_index >= 0 &&b_index >= 0)
else
m_index--;
}while (a_index >= 0)
while (b_index >= 0)
//return la;
}時間複雜度:o(a_length + b_length)
空間複雜度:o(1)
《劍指offer》 p55 相關題目
題目描述2:有兩個排序的陣列a1和a2,請實現乙個函式,把a1、a2中的所有數字插入新的陣列a3中,並且所有的數字是排序的。
void mergelistnew(int la,int a_length,int lb,int b_length,int lc,int c_length)
for (int i = 0; i < a_length - 1; i++)
}for (int i = 0; i < b_length - 1; i++)
}int a_index = 0;
int b_index = 0;
int c_index = 0;
while (a_index < a_length && b_index < b_length)
else
c_index++;
}while (a_index < a_length)
while (b_index < b_length)
}時間複雜度:o(a_length + b_length)
空間複雜度:o(a_length + b_length)
《資料結構》嚴蔚敏 吳偉民編著 p20 例2-2
合併兩個已排序的表
merge演算法 假定有乙個陣列a 1 m p,q,r,為它的三個索引,a p q a q 1,r 各自公升序排列,我們需要重新使得a p,r 也按公升序排列,我們用兩個指標s和t分別指向p和q 1,定義乙個輔助陣列b r p 1 比較a s 和a t 若前者小於等於後者,則將a p 存放到我們先前...
兩個已排序陣列的合併 C語言
最近在紙上寫乙個已排序陣列的合併時,花了超過預期的時間。仔細想想,這種要放到畢業找工作那會兩下就出來了,原因還在於工作後對基礎沒有重視,疏於練習。說開一點,現在搜尋引擎的發達確實給問題的解決帶來了便利,但是久而久之,對很多東西的掌握其實並不深入。比如 系的人經常分享一些linux核心io優化相關的內...
合併兩個排序的陣列
includeusing namespace std 有兩個排序的陣列a1和a2,內存在a1的末尾有足夠多的空餘空間容納a2.實現乙個函式,把a2中的所有數字插入到a 中並且所有的數字是排序的。思路 先計算出兩個陣列中元素的總個數,然後從尾到頭比較array1和array2中的數字,並把較大的數字複...