먼저 원래 질문을 살펴보겠습니다.
(학습 영상 공유: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!