자바 스크립트 임베드 코드

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Java 삽입 정렬은 목록의 각 항목을 평가합니다. 항목이 이전 항목보다 작으면 정렬에서 항목을 바꿉니다. 그렇지 않으면 항목이 같은 위치에 유지되고 두 항목이 목록에서 비교됩니다.

컴퓨터는 항목 목록을 정렬하는 데 능숙합니다. 루프를 사용하여 목록의 모든 항목을 검색하고 특정 방식으로 나타날 때까지 순서를 변경할 수 있습니다.

프로그래밍에는 목록을 정렬하는 표준 방법이 있습니다. 우리는 이러한 정렬 알고리즘을 호출합니다. 정렬 알고리즘은 목록의 모든 항목을 읽고 특정 문 집합을 사용하여 정렬합니다. 가장 최근에 접하게 될 정렬 알고리즘 중 하나는 일종의 삽입입니다.

이 가이드에서는 Java 삽입 정렬 알고리즘을 구현하는 방법에 대해 설명합니다. 어떤 유형이 작동하는지 이면에 있는 논리를 배울 수 있도록 예제를 통해 살펴보겠습니다.

시작하겠습니다!

Java 삽입 출력은 무엇인가요?

자바 삽입 유형은 카드 한 벌에서 손에 있는 카드를 정렬하는 것과 같습니다. 삽입 정렬은 목록의 각 항목을 확인하고 왼쪽에 있는 항목으로 바꿉니다. 아이템 교환 여부는 아이템이 이전 아이템보다 크거나 작느냐에 따라 달라집니다.

잠시 동안 당신이 카드 게임을 하고 있다고 상상해보십시오. 휘파람, 러미 등. 카드를 주문할 때 무엇을 하나요?

왼쪽부터 시작하여 두 번째 카드가 정렬되어 있는지 확인합니다. 이 카드가 마지막 카드보다 크면 같은 위치에 있어야 합니다. 그렇지 않으면 목록에서 한 위치로 이동해야 합니다.

손에 있는 모든 카드를 사용하고 모든 카드가 올바른 순서로 나타날 때까지 이 작업을 수행합니다.

정렬 입력은 언제 사용합니까?

여러 개가 있습니다. 정렬해야 할 왼쪽 요소가 몇 개 없을 때 사용되는 삽입 유형

< /a>

일종의 병합으로 데이터 목록을 정렬하는 데 사용할 수 있는 보다 효율적인 알고리즘이 있습니다. 그렇기 때문에 기본적으로 삽입 정렬을 항상 사용해서는 안 됩니다. 그러나 목록을 정렬하는 위치에 대한 선택 및 거품 유형보다 통합 유형이 더 효과적입니다.

삽입은 일종의 간단한 정렬 알고리즘이므로 초보자가 배우기에 유용합니다.

삽입은 일종의 간단한 정렬 알고리즘입니다. p>

삽입 순서 정렬

카드 한 벌을 보는 것은 세상에서 가장 직관적이지 않습니다. 먼저 프로그래밍의 예를 살펴보십시오. 다음 목록을 고려하십시오.

8 6 3 9

이 목록에서 첫 번째 항목이 정렬되었다고 가정합니다.

다음 단계는 목록의 두 번째 항목을 첫 번째 항목과 비교하는 것입니다. 첫 번째 요소가 두 번째 요소보다 크면 이 요소는 첫 번째 요소 앞에 배치됩니다.

이 경우 6은 8보다 큽니다. 즉, 6은 목록에서 위치를 반환합니다. 8은 다음 위치로 이동합니다.

6 8 3 9

이제 세 번째 요소를 왼쪽에 있는 요소와 비교해야 합니다. 3은 8보다 큽니까? 아니요, 따라서 8 위치를 오른쪽으로 이동합니다.

6 3 8 9

3이 6보다 큽니까? 아니요, 6번으로 이동하겠습니다.

3 6 < /td> 8 9

이제 목록의 네 번째 요소인 마지막 요소가 목록의 다른 요소보다 우수한지 비교해야 합니다. 이 경우 9는 이전의 모든 요소(8, 6, 3)보다 큽니다.

목록을 정렬하는 데 사용한 알고리즘은 다음과 같습니다.

  • 첫 번째 요소가 정렬됩니다.
  • 두 번째 요소를 왼쪽에 있는 요소와 비교합니다.
  • 이 요소가 왼쪽에 있는 값보다 크면 요소가 같은 위치에 유지됩니다. 그렇지 않으면 값을 왼쪽으로 이동합니다.
  • 모든 항목이 순서대로 나타날 때까지 반복합니다.

이제 정렬된 배열이 있습니다. 삽입 종류는 한 번에 한 항목씩 정렬됩니다. Java

실행 방법 insert sort in Java

정렬 함수가 실행될 때마다 비교되는 두 값 중 더 큰 값이 오른쪽에 한 위치에 삽입됩니다.

이론적으로 말해도 괜찮습니다. , 하지만 Java에서는 어떻게 구현합니까? 좋은 질문입니다. 학생 성적 목록에 삽입하여 정렬하는 클래스를 작성해 봅시다.

배열 라이브러리 준비

시작하자 배열 라이브러리를 Java 프로그램으로 가져와 정렬한 후 이 라이브러리를 사용하여 목록을 콘솔에 인쇄합니다.

선언 정렬 방법

목록을 반복하고 데이터를 오름차순 >으로 정렬하는 방법을 선언하는 것으로 시작하겠습니다.

입력 배열의 요소 수를 찾는 것으로 시작하겠습니다. 이를 통해 목록의 각 항목을 통과하는 루프를 만들 수 있습니다. 목록에서 나올 때까지 반복하는 루프를 초기화합니다.

루프에서 두 개의 변수, 즉 키와 마지막 변수를 선언했습니다.

Java 변수 "key"는 현재 주문 중인 요소를 추적합니다. "마지막" 변수는 항목 왼쪽에 정렬되어야 하는 항목 수를 추적합니다.

우리 프로그램은 더 작은 요소를 찾을 때까지 왼쪽에 있는 각 요소의 "key" 값을 비교합니다. . 이것은 Java "while" 루프에서 발생합니다.

주 함수 정의

이를 실행할 때 코드, 아무 일도 일어나지 않습니다. 실제로 우리는 아직 주요 기능을 정의하지 않았습니다. int(숫자의 배열) 네트워크를 정의하는 주 함수를 정의합니다. 이 주 함수는 이 숫자를 정렬하기 위해 선언한 insertSort () 함수를 사용합니다. entrySort Java 메소드 선언 후 이 코드를 붙여넣으십시오.

메인 메서드에서 정렬하려는 숫자 목록을 선언했습니다. sortNumbers 라는 InsertionSort() 메서드를 인스턴스화했습니다. 이 방법을 사용하여 숫자 목록을 오름차순으로 정렬합니다. 이 방법은 "숫자" 벡터의 값을 변경합니다. 값을 저장할 별도의 배열을 선언하지 않았습니다.

다음으로 우리는 다음을 사용했습니다. Arrays.toString () 메서드를 사용하여 숫자 배열을 문자열로 변환합니다. <

h2> 시험 복잡도

삽입 정렬의 평균 케이스 복잡도는 O( n ^ 2). 이것은 정렬된 항목이 없을 때 발생합니다.

배열이 정렬되면 최상의 복잡도가 발생합니다. 이것은 O(n)의 시간 복잡도를 생성합니다. 실제로 일종의 내부 루프 이 경우 삽입은 전혀 실행되지 않습니다.

최악의 경우 O ‚Äã‚Äãsort(n ^ 2)에서 삽입이 수행됩니다. 이는 배열이 오름차순 또는 내림차순인 경우 발생합니다. 역순으로 정렬하려는 경우(즉, 오름차순에서 내림차순) 다른 모든 요소와 각 요소의 일치 ents.

결론

삽입 종류는 데이터를 정렬하는 효율적인 방법입니다. orts는 목록의 두 번째 값부터 시작하여 값을 비교합니다. 이 값이 왼쪽에 있는 값보다 크면 목록이 변경되지 않습니다. 그렇지 않으면 왼쪽에 있는 요소가 더 작아질 때까지 값이 이동됩니다.

이제 Java에서 자신만의 삽입 정렬 알고리즘을 작성할 준비가 되었습니다! 더 많은 Java 학습 리소스를 찾고 있다면 다음을 확인하십시오. Java 학습 안내서 .