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


출처: cs50 edwith

 

문제

삽입 정렬을 이용해서 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