인프런 커뮤니티 질문&답변
풀이방법 시간복잡도 질문드립니다.
작성
·
173
0
강의코드와 비교했을때,
아래 풀이방법도 시간복잡도 측면에서 차이 없을까요?
function solution(size, arr) {
let answer;
let cache = Array.from({ length: size }, () => 0);
for (let x of arr) {
if (cache.indexOf(x) === -1) {
cache.unshift(x);
if (cache.length > size) cache.pop();
} else {
let pos = cache.indexOf(x);
for (let i = pos; i > 0; i--) cache[i] = cache[i - 1];
cache[0] = x;
}
}
answer = cache;
return answer;
}
퀴즈
선택 정렬 알고리즘의 핵심 과정은 무엇일까요?
인접한 두 요소를 비교하여 순서가 맞지 않으면 교환합니다.
정렬되지 않은 부분에서 가장 작은 값을 찾아 정렬된 부분의 올바른 위치로 옮깁니다.
배열을 반으로 나누고 각 부분을 재귀적으로 정렬한 후 병합합니다.
하나의 요소를 정렬된 하위 배열의 올바른 위치에 삽입합니다.





