2번째 원소부터 시작하여 그 앞(왼쪽)의 원소들과 비교하여 삽입하는 삽입 위치 뒤에 위치한 원소들은 자리가 밀린다.
Selection Sort와 유사하지만, 좀 더 효율적인 정렬 알고리즘
Big-O : O(n^2)
Big-Ω : Ω(n)
모두 정렬이 되어있는 경우 한번씩만 비교하게 되므로 Ω(n)의 시간복잡도를 가지게 된다.
중복 데이터가 있는 경우 데이터가 교환되지 않고 정렬이 다 끝난 후에도 기존 중복 데이터의 순서가 유지되는 정렬
function insertionSort (array) {
for(let i=1; i<array.length; i++){
let swap = array[i];
let prev = i-1;
while(prev>=0 && array[prev]>swap){
array[prev+1] = array[prev];
prev--;
}
array[prev+1] = swap;
console.log(`${i}회전 : ${array}`);
}
return array;
}
console.log(insertionSort([5,7,3,4,1,6,2]));
참고자료
CS50
https://medium.com/@peterlin5301997/bubble-sort-5a66156c942e
https://im-developer.tistory.com/133