본문 바로가기
Preparing Coding Test/Algorithm

[자료구조/Java] 버블 정렬(Bubble Sort)

by weero 2020. 8. 20.

 

youtu.be/YbsQiiubO74

 

앞에서부터 2개씩 비교해서 작은 것을 앞으로, 큰 것을 뒤로 보낸다. (제일 뒤부터 정렬된다)

- 시간 복잡도 : O(n^2)

 

코드

public class Test{
	private static void bubbleSort(int[] arr){
    	bubbleSort(arr, arr.length-1);
    }
    private static void bubbleSort(int[] arr, int last){
    	if(last > 0){
        	for(int i=1; i<=last; i++){
            	if(arr[i-1] > arr[i]){
                	swap(arr, i-1, i);
                }
            }
            bubbleSort(arr, last-1);
        }
    }
    private static void swap(int[] arr, int source, int target){
    	int tmp = arr[source];
        arr[source] = arr[target];
        arr[target] = tmp;
    }
    private static void printArray(int[] arr){
    	for(int data : arr){
        	System.out.print(data + ", ");
        }
        System.out.println();
    }
    public static void main(String[] args){
    	int arr[] = {3, 5, 4, 2, 1};
        printArray(arr);
        bubbleSort(arr);
        printArray(arr);  
    }
}