정렬은 일반적으로 이중층 루프로 구현되며, 외부 루프는 루프 라운드 수를 제어하고 내부 루프는 단일 정렬을 구현합니다. . 외부 루프의 인덱스 범위는 1부터 arr.length-1까지이며, 외부 루프의 반복 횟수가 증가할수록 내부 루프의 반복 횟수는 감소합니다.
조건이 충족되면 위치를 바꾸어 큰 요소가 뒤로 이동합니다.
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; }
정렬되지 않은 시퀀스의 최대값을 필터링하여 정렬되지 않은 시퀀스의 끝에 배치합니다. 외부 루프는 정렬되지 않은 시퀀스의 최대값을 정렬되지 않은 시퀀스의 마지막 요소 위치와 교환하면서 한 번 반복됩니다. 핵심은 최대값의 인덱스를 얻는 것입니다. 직접 정렬은 버블 정렬보다 빠릅니다.
내부 루프 진입점: 정렬되지 않은 시퀀스의 첫 번째 요소인 인덱스 0이 최대값이라고 가정하고 이를 나머지 요소와 비교하여 최대값의 인덱스를 얻습니다.
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; }
단 하나의 레이어 루프에서 두 요소의 위치를 교환합니다. , 루프 수는 arr.length/2-1입니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!