Javascript/알고리즘
[Javascript] 정렬 - 삽입정렬(Insertion Sort)
BeomBe
2023. 11. 28. 15:00
반응형
1. 삽입 정렬
각 숫자를 적절한 위치에 삽입하는 정렬 기법
동작 방식
1. 각 단계에서 현재 원소가 삽입될 위치를 찾는다.
2. 적절한 위치에 도달할 떄까지 반복적으로 왼쪽으로 이동한다.
시간 복잡도
- 삽입 정렬이란 각 원소를 적절한 위치에 삽입하는 정렬 기법
- 매 단계에서 현재 처리중인 원소가 삽입될 위치를 찾기위해 약 N번의 연간이 필요하다.
- 결과적으로 약 N개의 단계를 거친다는 점에서 최악의 경우 O(N²)의 시간 복잡도를 가진다.
삽입정렬 예시
*삽입 정렬을 수행할 떄는 처음에 첫번째 원소는 정렬이 되어있다고 고려한다.
소스코드 예시
//삽입정렬함수
function insertionSort(arr) {
for (let i = 1; i < arr.length; i++){
for (let j = i; j > 0; j--) {
if(arr[j] < arr[j - 1]) {
let temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
else {
//자기보다 작을 경우 그 자리에서 멈춤
break;
}
}
}
}
let points = [40, 100, 1, 5, 25, 10];
insertionSort(points);
console.log(points); // [1,5,10,25,40,100]
반응형