>  기사  >  Java  >  배열 정렬에 대한 자세한 소개

배열 정렬에 대한 자세한 소개

零下一度
零下一度원래의
2017-07-23 17:22:001221검색

1 개요

1. 이중층 루프

정렬은 일반적으로 이중층 루프로 구현되며, 외부 루프는 루프 라운드 수를 제어하고 내부 루프는 단일 정렬을 구현합니다. . 외부 루프의 인덱스 범위는 1부터 arr.length-1까지이며, 외부 루프의 반복 횟수가 증가할수록 내부 루프의 반복 횟수는 감소합니다.

2 버블 방식

1. 기본 아이디어

조건이 충족되면 위치를 바꾸어 큰 요소가 뒤로 이동합니다.

2. 알고리즘 구현

public static int[] bubbleSort(int[] arr) {for (int i = 1; i < arr.length; i++) {for (int j = 0; j < arr.length - i; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }return arr;
    }

3가지 직접 정렬

1. 기본 아이디어

정렬되지 않은 시퀀스의 최대값을 필터링하여 정렬되지 않은 시퀀스의 끝에 배치합니다. 외부 루프는 정렬되지 않은 시퀀스의 최대값을 정렬되지 않은 시퀀스의 마지막 요소 위치와 교환하면서 한 번 반복됩니다. 핵심은 최대값의 인덱스를 얻는 것입니다. 직접 정렬은 버블 정렬보다 빠릅니다.

내부 루프 진입점: 정렬되지 않은 시퀀스의 첫 번째 요소인 인덱스 0이 최대값이라고 가정하고 이를 나머지 요소와 비교하여 최대값의 인덱스를 얻습니다.

2. 알고리즘 구현

public static int[] directSort(int[] arr) {int len = arr.length;int index;for (int i = 1; i < len; i++) {
            index = 0;for (int j = 1; j <= len - i; j++) {if (arr[index] < arr[j]) {
                    index = j;
                }int temp = arr[len - i];
                arr[len - i] = arr[index];
                arr[index] = temp;
            }
        }return arr;
    }

4개 역 정렬

1. 기본 아이디어

단 하나의 레이어 루프에서 두 요소의 위치를 ​​교환합니다. , 루프 수는 arr.length/2-1입니다.

2. 알고리즘 구현

public static int[] reverseSort(int[] arr) {for (int i = 0; i < arr.length / 2; i++) {int temp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }return arr;
    }

위 내용은 배열 정렬에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.