버블 정렬(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)
정렬중에서 가장 비효율적인 정렬이다.
★★☆☆☆
반응형
'개발 > 기본) 기본기' 카테고리의 다른 글
기본기)정렬)c#) 삽입 정렬(Insert Sort) (0) | 2020.08.29 |
---|---|
기본기)정렬)c#) 선택정렬(Select Sort) (0) | 2020.08.29 |
기본기)Array 와 List 의 차이점 (2) | 2020.08.11 |
기본기) 우선순위 큐(Priority Queue) (0) | 2020.05.11 |
기본기) Extends와 Implements의 차이점 (0) | 2019.11.15 |
댓글