버블정렬

알고리즘 2015. 9. 26. 14:46

버블정렬이란?

인접한 두 수의 크기를 비교해 뒤로 큰 수(오름차순) 또는 작은 수(내림차순)를 뒤로 보내는 정렬 방법입니다.


시간복잡도는?

시간복잡도는 O(N^2)입니다. 모든 수에 대해서 N번만큼 비교를 하기 때문입니다. 

최악의 경우? O(N^2) 

최선의 경우? O(N^2)

보통의 경우? O(N^2)


공간복잡도는?

정렬을 위해 입력받은 배열 이외에는 특별한 저장공간을 할당할 필요가 없습니다. 

그래서 기존의 입력되는 배열인 N개만 필요하므로 O(N)입니다.


어떻게 구현하나?

    private static int[] bubble_sort(int[] arr){
        for(int i = arr.length - 1; i > 0;i--){
            for(int j = 0;j<i;j++){
                if(arr[j] > arr[j + 1]){
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1= temp;
                }
            }
        }
        return arr;
    }
cs


<기준수>


<for문 분석하기! => i = 4, j = 0 ~ 3>


<for문 분석하기! => i = 3, j = 0 ~ 2>


<>



<>




'알고리즘' 카테고리의 다른 글

삽입정렬  (0) 2015.09.26
선택정렬  (0) 2015.09.26
재귀호출 - Recursive Call  (0) 2015.09.24
빅 오 분석법 O(n)  (0) 2015.07.23
조합알고리즘의 최적화  (0) 2015.04.30
Posted by slender ankles
,