삽입 정렬(Insert Sort)
앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. 매 순서마다 해당 노드를 삽입할 수 있는 위치를 찾아 해당 위치에 넣는다.
데이터를 하나씩 저장 이후에 순서를 넣는 방식이다.
public void SetInsertSort(List<int> _list){
Logger.LogFormat("[Insert - Sort] Start ");
int j, key;
for(int i = 1; i < _list.Count;i++){
key = _list[i];
for(j = i-1; (j >=0 && _list[j]> key); j--){
_list[j + 1] = _list[j];
}
_list[j + 1 ] =key;
this.DebugText(_list);
}
Logger.LogFormat("[Insert - Sort] End ");
}
삽입 정렬의 특징으로는 알고리즘 자체가 매우 간단하고 빠르고, 대부분의 노드가 이미 정렬되어있으면 매우 효율적이다. 노드가 많고 크기가 클경우에 적합하지 않다.
시간 복잡도 : O(n2)
공간 복잡도: O(n)
★★★☆☆
반응형
'개발 > 기본) 기본기' 카테고리의 다른 글
기본기)람다식(Lambda Expression) (4) | 2020.09.03 |
---|---|
기본기)정렬)c#) 셸 정렬(Shell Sort) (8) | 2020.08.29 |
기본기)정렬)c#) 선택정렬(Select Sort) (0) | 2020.08.29 |
기본기)정렬)c#) 버블 정렬(Bubble Sort) (0) | 2020.08.29 |
기본기)Array 와 List 의 차이점 (2) | 2020.08.11 |
댓글