July 28, 2023
배열의 요소 중에 두 번쨰 자료부터 시작하여 그 앞(왼쪽)의 자료들과 비교하여 삽입할 위치를 지정한 후 자료를 뒤로 옮기고 지정한 자리에 자료를 삽입하여 정렬하는 알고리즘입니다.
삽입 정렬하는 과정을 간단히 정리하면 다음과 같습니다.
배열 [12, 11, 13, 5, 6]을 예를 들어 살펴 보겠습니다.
11은 12 보다 작으므로 두 개의 위치를 바꿉니다.
[12, 11, 13, 5, 6]13이 12보다 크므로 두 개의 위치를 바꾸지 않습니다, 두 개의 위치가 바뀌지 않았다는 말은 13과 11을 굳이 비교하지 않아도 됩니다. 그 이유는 [11, 12]은 이미 그 전 과정에서 오름차순으로 정렬이 되었기 때문입니다.
[11, 12, 13, 5, 6]5는 13보다 작으므로 두 개의 자리를 바꿉니다. 그리고 5는 12 보다 작으므로 두 개의 자리를 바꿉니다. 그리고 5는 11보다 작으므로 두 개의 자리를 바꿉니다.
[5, 11, 12, 13, 6]6은 13 보다 작으므로 두 개의 자리를 바꿉니다. 그리고 6은 12보다 작으므로 자리를 바꿉니다, 그리고 6은 11보다 작으므로 자리를 바꿉니다. 마지막으로 6은 5보다 크므로 자리를 바꾸지 않습니다.
[5, 6, 11, 12, 13]function insertSort(arr) {
let temp;
let j;
for (let i = 1; i < arr.length; i++) {
temp = arr[i];
j = i - 1;
while (j >= 0 && arr[j] > temp) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
}https://gmlwjd9405.github.io/2018/05/06/algorithm-insertion-sort.html