劍指offer 合併有序陣列 04 1

2021-06-20 17:20:14 字數 1314 閱讀 6439

#include#include //有兩個排序的陣列a1和a2,內存在a1的末尾有足夠多的剩餘空間容納a2

//實現乙個函式將a2中所有的數字插入到a1,並寫所有的數字是排序的。

//自己寫的,用例不多,還需進一步測試

void merge(int array1,int array2,int length,int i,int j)

else

}if(i>=0) }

if(j>=0) }

}//判斷兩個陣列是否相同

//===測試用例====

bool issame(int a, int b, int i, int j)

return true;

}void test(char * testname,int array1, int array2, int length, int i,int j,int expected, int k)

void test1()

; int array2=;

int expected=;

test("test1", array1, array2, 20, 3, 3, expected, 6);

}void test2()

; int array2=;

int expected=;

test("test2", array1, array2, 20, 3, 3, expected, 6);

}void test3()

; int array2=;

int expected=;

test("test3", array1, array2, 20, 0, 3, expected, 3);

}void test4()

; int array2=;

int expected=;

test("test4", array1, array2, 20, 3, 0, expected, 3);

}void test5()

; int array2=;//有乙個元素為0,但定義的長度為0

int expected=;// int expected;編譯通不過,必須制定陣列長度;int expected={}這樣也有問題

//int (*p)[1]=&expected;//陣列指標,p指向含有乙個元素的陣列,定義的時候1必須要有

//int * p[1];//指標陣列,含有乙個元素,元素的型別為指標

test("test5", array1, array2, 20, 0, 0, expected, 0);

}void main()

劍指offer總結 面試相關題 合併有序陣列

題目 有兩個排序的陣列a1和a2,內存在a1的末尾有足夠多的空餘空間容納a2.請實現乙個函式,把a2中的所有數字插入到a1中,並且所有的數字都是有序的。實現1 返回新陣列 要點 要返回乙個新陣列,這個陣列在函式中需要用new的方式申請記憶體,這樣的陣列儲存與堆中,在函式返回後並不會銷毀,並且要在函式...

合併有序陣列

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 給你兩個有序且公升序的陣列,請你把它們合成乙個公升序陣列並輸出 give you two ordered ascending array,you put them into one ascending array and ou...

合併有序陣列

描述 給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 num1 成為乙個有序陣列。說明 初始化 nums1 和 nums2 的元素數量分別為 m 和 n 你可以假設 nums1 有足夠的空間 空間大小大於或等於 m n 來儲存 nums2 中的元素。...