[알고리즘 js]정렬#2

K S Michael·2022년 4월 12일
0

알고리즘

목록 보기
4/5

삽입정렬

0번째 index는 정렬됨으로 간주한다.

  1. i는 1 부터
  2. j는 i-1부터
  3. i는 시작할때 값을 temp에 저장한다.
  4. 반복 : j값이 temp보다 크면 j값을 뒤(j+1)로 복사하고, 작다면 작은 값이 j이기 때문에 j+1에 temp를 넣고 현재 반복을 종료한다.
  5. 반복이 끝날때까지 나타나지 않으면 0번 index에 저장한다. 마지막에 j값은 -1이기 때문에 j+1에 temp를 넣는다.

코드중복 : 4, 5 ==> j+1에 temp에 저장

해결 : 반복이 끝나고 실행한다. j가 스코프 밖에 존재하기 때문에 미리 선언한다.

function solution(arr) {
  let answer = arr;
  for (let i = 1; i < arr.length; i++) {
    let temp = arr[i];
    let j;
    for (j = i - 1; j >= 0; j--) {
      if (arr[j] > temp) arr[j + 1] = arr[j];
      else break;
    }
    arr[j + 1] = temp;
  }
  return answer;
}

console.log(solution([11, 7, 5, 6, 10, 9]));
profile
차근차근

0개의 댓글

관련 채용 정보