Java에서 삽입 정렬을 구현하는 방법은 무엇입니까?



이 기사는 예제와 코드를 통해 Java의 Insertion Sort에 대한 상세하고 포괄적 인 지식을 제공합니다.

Java의 삽입 정렬은 간단하고 효율적인 정렬 알고리즘으로, 한 번에 한 요소 씩 최종 정렬 된 배열을 생성합니다.일반적으로 사용자가 작은 데이터 세트를 가지고있을 때 구현됩니다. 다음 주제를 다룰 것입니다.

삽입 정렬이란 무엇입니까?

Java의 삽입 정렬은 효율적인 정렬 알고리즘으로, 한 번에 한 요소 씩 최종 정렬 된 배열을 생성합니다. 입력 데이터의 요소는 반복 할 때마다 제거됩니다. 배열에있는 가장 큰 값과 비교 된 다음 올바른 위치로 이동합니다. 이러한 종류의 작동을 이해하기 위해이 예제를 살펴 보겠습니다.





Inserion-sort-in-java

삽입 정렬 알고리즘

정렬되지 않은 배열이 있다고 가정 해 보겠습니다. [6, 5, 15, 3, 9]



  • 첫 번째 인덱스 반복 : 첫 번째 인덱스의 값은 5로 6보다 작습니다. 배열은 [6, 6, 15, 2, 8] .

요소 집합의 시작 부분에 도달하면 값을 0 번째 인덱스에 배치합니다.이제 배열은 다음과 같습니다. [5, 6, 15, 3, 9]

  • 두 번째 인덱스 반복 : 두 번째 인덱스의 값은 15로 6보다 큽니다. 배열이 변경되지 않습니다.



  • 세 번째 인덱스 반복 : 세 번째 인덱스의 값은 3입니다. 값이 15보다 작으므로 배열은 [5, 6, 15, 15, 9]

값 3도 6보다 작으므로 이제 배열이 다음과 같이 변경됩니다. [5, 6, 6, 15, 9]

3도 5보다 작습니다. 배열이 다시 수정됩니다. [5, 5, 6, 15, 9]

오버라이드와 과부하의 차이

배열의 시작 부분에 도달하면 0 번째 인덱스에 3이 배치됩니다. 이제 배열은 다음과 같이 정의됩니다. [3, 5, 6, 15, 9]

  • 네 번째 인덱스 반복 : 4 번째 인덱스의 값은 9입니다. 유사한 알고리즘에 따라 최종 정렬 된 배열은 다음과 같습니다. [3, 5, 6, 9, 15]

Java에서 삽입 정렬을위한 코드

// 삽입 정렬을 구현하는 Java 프로그램 public class InsertionEx {/ * 삽입을 사용하여 배열을 정렬하는 함수 sort * / void sort (int a []) {int n = a.length for (int i = 1 i= 0 && a [j]> key) {a [j + 1] = a [j] j = j-1} a [j + 1] = key}} / * 크기 n * /의 배열을 인쇄하는 함수 static void displayArray (int a []) {int n = a.length for (int i = 0 i

복잡성 및 경계 사례

  • 시간 복잡성 : 삽입 정렬의 시간 복잡도는 O (n * 2)입니다.

  • 경계 케이스 : 삽입 정렬에 걸리는 최대 시간은 요소가 역순으로 정렬 될 때입니다. 요소가 이미 정렬 된 경우 최소 시간이 걸립니다.

삽입 정렬은 정렬 할 요소 수가 적을 때 사용자가 구현합니다. 지정된 배열이 거의 정렬 된 경우에도 사용할 수 있습니다. 즉, 몇 개의 숫자 만 잘못 배치되고 적절한 위치에 있지 않습니다.

이것으로 우리는 자바의 삽입 정렬 기사를 마칩니다. 씨 도대체 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 'Java의 삽입 정렬'블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.