まず元の質問を見てみましょう:
(学習ビデオ共有: java 教育ビデオ )
/** * ClassName: MergeSortArray <br/> * Function: 合并有序数组<br/> * [1, 2, 2, 5] * [3, 4, 7, 8, 9] * * */
アイデア分析 :
ダブル ポインターは比較を前から後ろに移動し、残りのデータをマージされた配列にコピーします。実際、これはマージ ソートのコア コードでもあります。マージ ソート (最初に分割してから分割)合併)は分割され征服され、統治の一部となります。
実装コード:
public static int[] mergeSortArray(int[] a, int[] b){ int length1 = a.length, length2 = b.length; int[] merge = new int[length1 + length2]; int i = 0, j = 0, k = 0; while(i < length1 && j < length2){ if(a[i] <= b[j]){ merge[k++] = a[i++]; }else{ merge[k++] = b[j++]; } } while(i < length1){ merge[k++] = a[i++]; } while(j < length2){ merge[k++] = b[j++]; } return merge; } public static void main(String[] args) { int[] a = {1, 2, 2, 5}; int[] b = {3, 4, 7, 8, 9}; int[] merge = mergeSortArray(a, b); for(int i = 0; i < merge.length; i++){ System.out.println(merge[i]); } }
実行結果:
1 2 2 3 4 5 7 8 9
関連する推奨事項: Java 入門チュートリアル
以上がJavaで順序付けされた配列をマージする効率的な方法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。