// 오름차순
function ascInsertionSort(array) {
let j
for (let i = 1; i < array.length; i++) {
const value = array[i]
// j가 0보다 크거나 값고, value가 정렬된 값보다 작으면
for (j = i - 1; j >= 0 && value < array[j]; j--) {
array[j + 1] = array[j] // 한 칸씩 뒤로 밀어낸다
}
array[j + 1] = value // 마지막 빈 칸에 value를 넣어준다.
}
return array
}
// 내림차순
function descInsertionSort(array) {
let j
for (let i = 1; i < array.length; i++) {
const value = array[i]
// value < array[j]가 value > array[j]로 변경
for (j = i - 1; j >= 0 && value > array[j]; j--) {
array[j + 1] = array[j]
}
array[j + 1] = value
}
return array
}
ascInsertionSort([5, 6, 1, 4, 2, 3]) // [1, 2, 3, 4, 5, 6]
descInsertionSort([5, 6, 1, 4, 2, 3]) // [6, 5, 4, 3, 2, 1]