이렇게 코드를 작성해도 삽입 정렬인가요?
242
작성한 질문수 6
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 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]는 최종적으로 올바른 위치로 ‘삽입’됩니다.
따라서, 작성하신 자바스크립트 코드는 삽입 정렬 방식으로 배열을 정렬하는 올바른 예제입니다.
continue를 사용하는 이유
0
79
2
정렬 가능 여부 판단하기
0
64
2
알고리즘 학습법 관련해서 질문드립니다.
0
86
1
코드 리뷰 부탁드립니다!
0
90
1
indexOf를 사용해서 풀어보았습니다 !!
0
68
1
저는 이런식으로 구현 해보았습니다 !!
0
64
1
12,13,14 강의 소리만 나오고 검은 화면입니다
0
100
3
반복문 최소화하고 indexOf 사용해서 풀어봤습니다
0
63
1
영상 보기 전에 직접 풀어봤습니다.
0
74
1
섹션1의 17번문제 이 풀이로 풀어도 될까요?
0
135
2
정규표현식으로 처리해도 상관없나요 ?
0
120
2
3칸씩 건너뛸 수 있을 경우
0
125
2
강의에 대해 질문있습니다.
0
135
2
Object와 Set을 이용해 풀어봤습니다.
0
117
2
이렇게 해도 되나요?
0
102
2
선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.
0
145
2
이렇게 풀어도 괜찮을까요?
0
138
1
이렇게 풀어도 괜찮을까요?
0
112
1
모든 아나그램 찾기에서 시간복잡도
0
98
1
코드리뷰 부탁드립니다.
0
130
1
for loop 탈출은 return 문으로 해도 되지 않나요?
0
133
1
투포인트알고리즘으로 풀어봤습니다.
0
142
0
코드 리뷰 부탁드립니다.
0
120
1
코드 맞게 작성한 거 아닌가여??
0
146
1





