Algorithm 11 : insertionSort

hyeongirlife·2021년 10월 25일
0

Algorithm

목록 보기
11/30

설명

  • 정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다.

예시

let output = insertionSort([3, 1, 21]);
console.log(output); // --> [1, 3, 21]

생각

  1. 삽입 정렬을 우선 공부하자.
  2. 삽입정렬은 두번째 인덱스부터 시작하며 왼쪽에 있는 값이 자신보다 크면 오른쪽으로 한 칸 옮기는 방식이다.
  3. for문으로 두번째 요소부터 테스트를 하는데, 자신보다 왼쪽에 있는 값이 큰지는 while문으로 하자 (레퍼런스 보고 암ㅠㅠ)

풀이

function insertionSort(arr) {
  for (let i = 0; i < arr.length; i++) {
    index = i;
    while (arr[index - 1] > arr[index]) {
      let temp = arr[index - 1];
      arr[index - 1] = arr[index];
      arr[index] = temp;
      index--;
    }
  }
  return arr
}

깨달은 점

  1. 삽입 정렬을 공부했는데, for문 안에 while문을 쓸 수 있다는 걸 알게 됐다.
  2. while문에 들어갈 땐 i를 따로 변수지정해주고, 반복해서 돌아가기 때문에 마지막에 temp를 새롭게 정의해줘야 하는 점
profile
머릿속에 있는 내용을 정리하기

0개의 댓글

관련 채용 정보