'분할 및 정복'이라는 용어에 대해 들어 본 적이 있습니까? 이 기사는이 접근 방식에 기반을두고 있습니다. 병합 정렬 먼저 문제를 하위 문제로 나눈 다음이를 병합하여 솔루션을 정복하는 '분할 및 정복'알고리즘입니다. 다음은 J의 병합 정렬 개념에 대한 전체 개요입니다. .
Java에서 병합 정렬이란 무엇입니까?
병합 정렬은 인기있는 정렬 알고리즘 분할 및 정복 접근 방식을 따릅니다. 문제는 하위 문제로 나뉘고 함께 결합되어 최종 솔루션에 도달합니다!
이제 병합 정렬 작업 중에 정확히 어떤 일이 발생합니까? 자세히 이해합시다.
병합 정렬 작업
프로세스 중에 병합 정렬이 뒤 따르는 두 단계가 있습니다.
system.exit (0)을 사용하여 프로그램을 종료 할 수 있습니다.
- 나누기: 이 단계에서 입력 배열은 2 개의 절반으로 나뉘고 피벗은 배열의 중간 지점입니다. 이 단계는 더 이상 분할 할 절반 배열이 더 이상 없을 때까지 모든 절반 배열에 대해 반복적으로 수행됩니다.
- 정복하다: 이 단계에서는 분할 된 배열을 아래쪽에서 위쪽으로 정렬 및 병합하고 정렬 된 배열에 도달합니다.
이 접근 방식은 문제의 하위 부분을 먼저 쉽게 정렬하여 솔루션에 도달하도록 도와줍니다.
예 : 다이어그램
여기에서 병합 정렬이 어떻게 생겼는지 보았습니다. 병합 정렬의 주요 개념은 정렬하는 데 시간이 덜 걸린다는 것입니다. 이제 구현 부분으로 넘어갑니다!
이행
package MyPackage public class MergeSort {void merge (int arr [], int beg, int mid, int end) {int l = mid-beg + 1 int r = end-mid int LeftArray [] = new int [l] int RightArray [] = 새로운 int [r] for (int i = 0 i산출:
정렬 된 배열
하나
4
17
22
2. 3
40
오분의 사
51
55
90__init__이것은 병합 정렬을 나타내는 Java 코드의 모습입니다. 다음 세그먼트로 이동합니다.
복잡성
복잡성은 시간 복잡성과 공간 복잡성의 두 가지 유형으로 나뉩니다. 병합 정렬의 경우 데이터는 다음과 같습니다.
복잡성 최고의 사례
평균 사례
최악의 경우
시간 복잡성
O (n log n)
O (n log n)
자바 addactionlistener (this)O (n log n)
공간 복잡성
-
-
의 위에)
이것으로이 기사를 마무리하겠습니다. 위에서 설명한 내용이 Java 지식에 가치를 더하기를 바랍니다. 우리는 함께 자바 세계를 계속 탐구 할 것입니다. 계속 지켜봐주세요!
확인 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.
질문이 있으십니까? 이 '의 코멘트 섹션에서 언급하십시오 Java에서 정렬 병합 ”블로그를 통해 가능한 한 빨리 답변을 드리겠습니다.