合併兩個已有序的陣列

2021-08-19 21:56:37 字數 570 閱讀 1209

比較簡單:對有序陣列a,b,求a,b組成的有序陣列arr

1、a中最大 < b 最小,先拷貝a至arr,再拷貝b,至arr。

2、b中最大 < a中最小,先拷貝b至arr,再拷貝a至arr。

3、無1,2極端情況,依次取a,b首元素比較,將較小者放入arr。注意考慮a,b陣列長度不相等時,長度更長者未能遍歷完的情況。

public static int merge(int a,int b)

while (j < b_len)

//b陣列最大}else if (b[b_len-1] < a[0])

while (i < a_len)

//沒有以上極端情況

}else else

k++;

}//當a,b陣列長度不想等時,會其中乙個陣列的剩下部分元素還未被放入arr的情況

//只需要將剩下元素全部拷貝到arr即可

while (i < a_len)

while (j < b_len)

}return arr;

}

合併兩個有序的陣列

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

合併兩個有序陣列

例如 陣列a1 陣列a2 則合併為a3 思路 依次掃瞄a1和a2的元素 比較當前元素的值,將較小的元素賦給a3,直到乙個陣列掃瞄完畢,然後將另乙個陣列的剩餘元素賦給a3即可。陣列a3的容量需要容納a1和a2兩個陣列和長度和。實現 include include void merge int a1,i...

合併兩個有序子陣列

設子陣列a 0 k 1 和a k,n 1 已經排好序 0 k n 1 設計乙個合併這兩個子陣列的排序好的陣列a 0 n 1 的 演算法。要求演算法最壞情況下所用的計算時間為o n 且只用到o 1 的輔助空間。解答此題可以用向右 左 迴圈換位合併的思想,先用二分搜尋查詢a 0 在陣列a k n 1 中...