-> 블로그 이전

[Data Structure] 버블 정렬 - Bubble Sort

2022. 1. 3. 18:23Major`/자료구조

버블 정렬 (Bubble Sort)

Stable Sort

  • 인접한 두 정수를 비교해서 정렬

 

시간복잡도

- O(n²)

 

장점

- 구현이 매우 간단하다

- 추가 메모리가 필요없다

 

단점

- 시간복잡도가 최선/평균/최악 전부 O(n²)으로, 굉장히 비효율적이다

 

 

▶ Bubble Sort Code

static void bubble_sort(int [] A){
        Calendar before = Calendar.getInstance();
        for(int i=0; i<A.length; i++){
            for(int j=0; j<A.length-1; j++){
                if(A[j] > A[j+1]){
                    int tmp = A[j];
                    A[j] = A[j+1];
                    A[j+1] = tmp;
                }
            }
        }
    }

 

 

▶ Full Code

package Sort;

import java.util.Calendar;

public class Bubble_Sort_10 {
    public static void main(String[] args) {
        int [] A = new int[30]; // 정렬할 배열 A

        for(int i=0; i<A.length; i++)
            A[i] = (int)(Math.random()*201); // 0~200

        // 정렬 전 A 출력
        System.out.print("A []");
        for(int i=0; i<A.length; i++){
            if(i%10==0) System.out.println();
            System.out.print(A[i] + "\t");
        }
        System.out.println("\n");

        bubble_sort(A);

        // 정렬 후 A 출력
        System.out.print("result []");
        for(int i=0; i<A.length; i++){
            if(i%10==0) System.out.println();
            System.out.print(A[i] + "\t");
        }
        System.out.println("\n");
    }

    static void bubble_sort(int [] A){
        Calendar before = Calendar.getInstance();
        for(int i=0; i<A.length; i++){
            for(int j=0; j<A.length-1; j++){
                if(A[j] > A[j+1]){
                    int tmp = A[j];
                    A[j] = A[j+1];
                    A[j+1] = tmp;
                }
            }
        }
    }
}