Java 버블 정렬 이해: 몇 가지 일반적인 구현 방법, 특정 코드 예제가 필요함
冒泡排序(Bubble Sort)算法: 1. 从序列的第一个元素开始,对相邻的两个元素进行比较 2. 如果前一个元素大于后一个元素,则交换这两个元素的位置 3. 对序列中的所有相邻元素进行比较和交换操作,一轮比较后,最大(或最小)的元素将位于序列的末尾(或第一位) 4. 重复步骤1-3,进行多轮的比较和交换操作,直到整个序列有序
3.1. 일반 버블 정렬
이 구현 방법은 각 비교 라운드 후에 가장 큰(또는 가장 작은) 요소가 됩니다. 올바른 위치에 대기했습니다. 다음은 해당 Java 코드 예입니다.
public class BubbleSort { public static void bubbleSort(int[] arr) { if (arr == null || arr.length <= 1) { return; } for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } }
3.2. 최적화된 버블 정렬
각 비교 라운드 동안 교환 작업이 발생하지 않으면 순서가 정상이며 알고리즘이 조기에 종료될 수 있음을 의미합니다. 다음은 해당 Java 코드 예입니다.
public class BubbleSort { public static void bubbleSort(int[] arr) { if (arr == null || arr.length <= 1) { return; } boolean isSorted = false; for (int i = 0; i < arr.length - 1 && !isSorted; i++) { isSorted = true; for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; isSorted = false; } } } } }
3.3. 향상된 버블 정렬
각 비교 라운드에서 가장 큰 요소와 가장 작은 요소를 동시에 찾아서 각각 올바른 위치에 배치할 수 있습니다. 다음은 해당 Java 코드 예입니다.
public class BubbleSort { public static void bubbleSort(int[] arr) { if (arr == null || arr.length <= 1) { return; } int left = 0; int right = arr.length - 1; while (left < right) { for (int i = left; i < right; i++) { if (arr[i] > arr[i + 1]) { int temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; } } right--; for (int j = right; j > left; j--) { if (arr[j] < arr[j - 1]) { int temp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = temp; } } left++; } } }
위 내용은 Java 버블 정렬: 몇 가지 일반적인 구현 방법 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!