삽입 정렬(Javascript)을 연습해 봅시다.
코드를 보여주세요
let data = [8, 6, 10, 5, 3, 9, 2, 7, 4, 1]
function InsertSort(arr) {
for (let i = 0; i < arr.length; i++) {
let currentIdx = i
for (let j = i - 1; j >= 0; j--) {
if (arr[currentIdx] < arr[j]) {
[arr[currentIdx], arr[j]] = [arr[j], arr[currentIdx]]
currentIdx = j
}
}
}
return arr
}
console.log(InsertSort(data))//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
핵심 아이디어
이 알고리즘의 까다로운 부분:
currentIdx
변수를 정의합니다. j
인덱스를 가지며 currentIdx
와 비교됩니다. currentIdx
는 이미 현재 인덱스인 i
에 할당되었으므로 j
는 이전 인덱스인 j-1
가 될 것이므로 비교하고자 합니다. arr[currentIdx] < arr[j]
) 스왑하고 currentIdx
를 j
에 동적으로 리바인딩해야 합니다. 이것은 이전 인덱스 지점을 찾아 교체(또는 "삽입")하는 이 알고리즘의 필수 부분입니다. Reference
이 문제에 관하여(삽입 정렬(Javascript)을 연습해 봅시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/re4388/lets-practice-insert-sort-javascript-5790텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)