Bubble Sort

버블 정렬

인접한 데이터 항목의 크기를 비교하여 교환 작업을 수행하고 정렬하는 방법

시간 복잡도는 O(n2)매우 느립니다.

일반적으로 루핑하면서 인접한 데이터 간의 교환 작업으로 정렬됩니다.

소송 절차

  1. 비교 작업이 필요한 경우 루프 범위를 조정합니다.

  2. 인접 데이터 값을 비교합니다.

  3. 스왑 조건이 충족되면 스왑 작업이 수행됩니다.

  4. 루프가 완료될 때까지 2단계와 3단계를 반복합니다.

  5. 정렬 영역을 설정하고 다음 루프를 실행할 때 이 영역을 제외합니다.

  6. 비교 대상이 더 이상 없을 때까지 1~5단계를 반복합니다.

스왑이 지정된 루프의 전체 범위에 있지 않으면 정렬이 완료되어 프로세스가 종료될 수 있음을 의미합니다.

버블 정렬을 사용하여 N개의 숫자를 오름차순으로 정렬

sort()를 사용하는 것은 쉽지만 예를 들어 직접 정렬을 구현해 봅시다.

public class BubbleSort {

    static int testA = 5;
    static int() testB = {5, 2, 3, 4, 1};

    public static void main(String() args) {
        bubbleSort(testA, testB);
    }

    public static int bubbleSort(int a, int() b) {
        // 정렬할 배열 생성
        int() A = new int(a);

        // 정렬할 배열에 파라미터로 넘어온 정렬되지 않은 숫자를 담는다
        for (int i=0; i<a; i++) {
            A(i) = b(i);
        }

        for (int i=0; i<a-1; i++) {
            for (int j=0; j<a-1-i; j++) {
                if (A(j) > A(j+1)) {
                    // 현재 A 배열의 값보다 1칸 오른쪽 배열의 값이 더 작으면 두 수를 바꾼다.

int temp = A(j); A(j) = A(j+1); A(j+1) = temp; } } } // 값 출력 int answer = 0; for (int i=0; i<a; i++) { answer = A(i); System.out.println(answer); } re