자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘
void insertionSort(int[] arr)
{
for(int i = 1 ; i < arr.length ; i++){
int temp = arr[i];
int aux = i - 1;
while( (aux >= 0) && ( arr[aux] > temp ) ) {
arr[aux+1] = arr[aux];
aux--;
}
arr[aux + 1] = temp;
}
}
최선의 경우
: 이동 없이 한번의 비교만 발생한다.
: 외부 루프 (n-1)번
O(n)
최악의 경우
: 입력 자료가 역순일 경우
O(n^2)
https://ko.wikipedia.org/wiki/%EC%82%BD%EC%9E%85_%EC%A0%95%EB%A0%AC
https://gmlwjd9405.github.io/2018/05/06/algorithm-insertion-sort.html