일반적인 작성 방법: 1. 기본 버블 정렬; 2. 개선된 버블 정렬: 각 외부 루프가 가장 큰 숫자를 올바른 위치로 이동하므로 내부 루프 수가 줄어들어 효율성이 향상됩니다. 삽입 정렬 및 버블 정렬: 이 작성 방법은 삽입 정렬의 아이디어를 바탕으로 정렬된 요소를 점차 앞으로 이동하여 정렬되지 않은 요소를 점차적으로 정렬하는 방식입니다. 이 방법을 "칵테일 시퀀싱"이라고 합니다.
이 튜토리얼의 운영 체제: Windows 10 시스템, Dell G3 컴퓨터.
버블 정렬은 정렬할 배열을 반복적으로 순회하고 한 번에 두 요소를 비교하여 순서가 잘못된 경우 교체하는 간단한 정렬 알고리즘입니다. 더 이상 교환이 필요하지 않을 때까지 배열을 순회하는 작업이 반복됩니다. 이는 배열이 정렬되었음을 의미합니다.
다음은 버블 정렬의 몇 가지 일반적인 Java 구현입니다.
1. 기본 버블 정렬:
java
public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { // swap arr[j+1] and arr[j] int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } }
2 개선된 버블 정렬: 각 외부 루프로 인해 가장 큰 숫자가 다음으로 이동됩니다. 위치를 정확하게 잡아 내부 루프 수를 줄여 효율성을 높일 수 있습니다.
java
public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { boolean swapped = false; for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { // swap arr[j+1] and arr[j] int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; swapped = true; } } // If no two elements were swapped by inner loop, then the array is sorted if (!swapped) break; } }
3. 삽입 정렬과 버블 정렬의 조합: 이 작성 방법은 정렬된 요소를 점차 앞으로 이동시켜 정렬되지 않은 요소를 점차적으로 정렬하는 삽입 정렬의 아이디어를 활용한 것입니다. 이 방법을 "칵테일 시퀀싱"이라고 합니다.
java
public static void cocktailSort(int[] arr) { int n = arr.length; boolean swapped; // to flag if any swap has been made in a pass for (int i = 0; i < n - 1; i++) { swapped = false; // assume this pass will do nothing for (int j = 0; j < n - 1 - i; j++) { // start with the second last element and go to the last one if (arr[j] > arr[j + 1]) { // if the current element is greater than the next one, swap them int temp = arr[j]; // swap elements arr[j] = arr[j + 1]; arr[j + 1] = temp; swapped = true; // flag to indicate a swap has been made in this pass } } // if no two elements were swapped in this pass, then the array is sorted, so we can stop the sorting process if (!swapped) break; // no swaps means the array is sorted, so we can stop the sorting process. This optimization is not required for correctness, but it can help in practice. If the array is already sorted, the outer loop will keep making passes without making any swaps, so we can stop early. This optimization can be applied to any version of bubble sort
위 내용은 Java에서 버블 정렬을 작성하는 몇 가지 일반적인 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!