ALGORITHM/Inflearn
삽입정렬
Harimad
2022. 3. 14. 15:36

참고
삽입 정렬(Insertion Sort) | 👨🏻💻 Tech Interview
삽입 정렬(Insertion Sort) Goal Insertion Sort에 대해 설명할 수 있다. Insertion Sort 과정에 대해 설명할 수 있다. Insertion Sort을 구현할 수 있다. Insertion Sort의 시간복잡도와 공간복잡도를 계산할 수 있다. In
gyoogle.dev

문제
삽입 정렬을 이용해서 N개의 숫자가 입력되면 오름차순으로 정리하는 프로그램 만드시오.
입력예제 1
11 7 5 6 10 9
출력예제 1
5 6 7 9 10 11
풀이 1 self
1. 맨 처음 요소는 정렬된 요소이고 그 다음 요소 부터는 정렬되지 않은 요소이다.
2. 정렬되지 않은 요소들을 반복순회한다.
2-1. 정렬되지않은 요소와 정렬된 요소들을 비교하면서 정렬된 값이 크다면 값을 swap해준다.

코드 1 self
function solution(arr){
let answer=arr;
for (let i = 1; i < arr.length; i++) {
for (let j = i-1; j >= 0 ; j--) {
if (answer[j+1] < answer[j]) [answer[j+1], answer[j]] = [answer[j], answer[j+1]];
else break;
}
}
return answer;
}
let arr=[11, 7, 5, 6, 10, 9];
console.log(solution(arr)); //(6) [5, 6, 7, 9, 10, 11]
From tutor
function solution(arr){
for (let i = 1; i < arr.length; i++) {
let tmp = arr[i], j;
for (j = i-1; j >= 0; j--) {
if (arr[j] > tmp) arr[j+1] = arr[j];
else break;
}
arr[j+1] = tmp;
}
return arr;
}
let arr=[11, 7, 5, 6, 10, 9];
console.log(solution(arr)); //(6) [5, 6, 7, 9, 10, 11]
출처
자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의
자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., - 강의
www.inflearn.com