JS 노트 삽입정렬

주재일·2021년 6월 13일
0

JS

목록 보기
12/33

기본로직
입력값에서 가장 작은 값을 찾아서 결과값에 하나씩 삽입하는 정렬방식

let 입력값 = [5, 2, 4, 1, 6, 9, 11, 13, 7]

let 입력값길이 = 입력값.length;

let 결과값 = [];

for(let i=0; i<입력값길이; i++){
  let 삽입값 = 입력값.shift()
  let 인덱스 = 인덱스함수(결과값, 삽입값)
  결과값.splice(인덱스, 0, 삽입값)
  console.log(결과값)
}

function 인덱스함수(결과값, 삽입값){
  for(let i in 결과값){
    if(삽입값 < 결과값[i]){
      return i
    }
  }
  return 결과값.length
}

해설:
1. 기준이 될 맨 앞 숫자를 shift 해준다.
2. 삽입을 위해 splice 해주기 위해 인덱스 값을 찾아줘야한다.
3. 인덱스는 인덱스 함수 function 으로 결과값과 삽입값을 인자로 받는다.
4. 반복문으로 결과값의 인덱스들을 돌면서 삽입값이 결과값의 i번째보다 작으면
i 번째를 반환해준다.
5. 아무것도 아니면 결과값 길이를 반환해준다.
6. 결과값에 splice 해준다.

profile
늦게 시작했으니 저는 늦둥이인가요?

0개의 댓글

관련 채용 정보