본문 바로가기
개발/기본) 기본기

기본기)정렬)c#) 버블 정렬(Bubble Sort)

by 테샤르 2020. 8. 29.

 버블 정렬(Bubble Sort)

서로 인접한 두 노드를 검사하여 정렬하는 알고리즘

인접한 2개의 노드를 비교해서 크기가 비교 후 정렬 기준에 따라 서로 교환을 한다.

 

배열에 7 4 5 1 3 의 값이 있을 경우

처음 값인 7을 인접한 노드를 검사한다.

7보다 큰 값이 없으므로 7은 가장 끝에 위치하게 된다.

 

 

 

이런 식으로 모든 인덱스를 비교할 때까지 정렬을 한다.

코드는 다음과 같다.

public void SetBubbleSort(List<int> _list){
       Logger.LogFormat("[Bubble - Sort] Start ");
        for(int i =_list.Count-1;i>0 ;i--){
            for(int  j = 0;j < i; j++){

                if(_list[j] > _list[j+1]){
                    int tempValue = _list[j+1];
                    _list[j+1] = _list[j];
                    _list[j] = tempValue;
                }
            }

            this.DebugText(_list);
        }
        Logger.LogFormat("[Bubble - Sort] End");
    }

 

버블정렬의 특징은 다음과 같다.

모든 인접한 노드를 검색하기 위해서 전체를 검사하는 방식의 정렬로 최악의 상황이나 최악의 경우는 모두 동일하다.

 

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

공간 복잡도 :  O(n)

정렬중에서 가장 비효율적인 정렬이다.

 

 ★

 

 

반응형

댓글