작성
·
176
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
function solution(arr) {
for (let i = 1; i < arr.length; i++) {
for (let j = i; j > 0; j--) {
if (arr[j] < arr[j - 1]) {
[arr[j - 1], arr[j]] = [arr[j], arr[j - 1]];
}
}
}
return arr;
}
let arr = [11, 7, 5, 6, 10, 9];
console.log(solution(arr));
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
네, 제시해주신 코드는 삽입 정렬(insertion sort) 알고리즘을 구현한 것입니다. 삽입 정렬은 정렬되지 않은 부분의 첫 번째 요소를 이미 정렬된 부분에 올바른 위치에 ‘삽입’하는 방식으로 정렬을 진행합니다.
코드를 보면, i
가 1부터 시작하여 배열의 끝까지 이동하는 반복문과, j
가 i
에서 시작하여 0에 도달할 때까지 감소하면서 반복하는 중첩된 반복문이 있습니다. 중첩된 반복문 안에서, 현재 요소(arr[j]
)가 전 요소(arr[j - 1]
)보다 작을 경우 두 요소의 위치를 교환해주고 있습니다. 이 과정을 통해 arr[j]
는 최종적으로 올바른 위치로 ‘삽입’됩니다.
따라서, 작성하신 자바스크립트 코드는 삽입 정렬 방식으로 배열을 정렬하는 올바른 예제입니다.