#includeusing namespace std;
/*有兩個排序的陣列a1和a2,內存在a1的末尾有足夠多的空餘空間容納a2.
實現乙個函式,把a2中的所有數字插入到a!中並且所有的數字是排序的。*/
/*思路:先計算出兩個陣列中元素的總個數,然後從尾到頭比較array1和array2中的數字,
並把較大的數字複製到array1的合適位置。*/
//num1和num2分別表示array1和array2中數字的個數, length表示array1的長度。
void merge(int array1, int array2, int length, int num1, int num2)
else
array1[k--] = array2[j--];
} if(i >= 0)
if(j >= 0) }
/*判斷兩個陣列是否相等*/
bool issame(int a, int b, int sum1, int sum2)
/*測試***/
void test(char* testname, int array1, int array2, int length, int num1, int num2, int expect, int k)
{ if(testname != null)
cout << testname << "begins"<< endl;
merge(array1, array2, length, num1, num2);
/*列印出array1中的元素*/
cout << "array1:";
for(int i = 0; i < num1 + num2; i++)
cout 輸出結果為:
合併兩個已排序的陣列
題目描述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 le...
165 合併兩個排序陣列
原題 您在真實的面試中是否遇到過這個題?是 標籤鍊錶 思路 逐個比較l1與l2的結點,將較小的掛載在結果鍊錶上。小技巧 可以建立乙個資料無效的結點作為標誌頭節點,返回其next。ac definition of singly linked list class listnode class solu...
LintCode 合併兩個排序好的陣列
題目 合併兩個排序好的陣列,要求新陣列也是有序的 分析 假設兩個陣列為a和b,新陣列為c。a和b的元素比較,小的放在c中,並且指標 1。臨界條件很重要 假設a的指標越界 退出迴圈的條件 那麼b的指標肯定沒有越界 為什麼?看 並且b未比較的元素一定比a所有元素大 a指標都越界了,說明a最後乙個元素進入...