>  기사  >  Java  >  Java에서 버블 정렬을 작성하는 몇 가지 일반적인 방법

Java에서 버블 정렬을 작성하는 몇 가지 일반적인 방법

小老鼠
小老鼠원래의
2024-01-04 16:39:21987검색

일반적인 작성 방법: 1. 기본 버블 정렬; 2. 개선된 버블 정렬: 각 외부 루프가 가장 큰 숫자를 올바른 위치로 이동하므로 내부 루프 수가 줄어들어 효율성이 향상됩니다. 삽입 정렬 및 버블 정렬: 이 작성 방법은 삽입 정렬의 아이디어를 바탕으로 정렬된 요소를 점차 앞으로 이동하여 정렬되지 않은 요소를 점차적으로 정렬하는 방식입니다. 이 방법을 "칵테일 시퀀싱"이라고 합니다.

Java에서 버블 정렬을 작성하는 몇 가지 일반적인 방법

이 튜토리얼의 운영 체제: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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