choi95 2021. 7. 19. 12:33

๋ฌธ์ œ

N๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์‚ฝ์ž… ์ •๋ ฌ์ž…๋‹ˆ๋‹ค.

 

๋ฌธ์ œํ’€์ด

์‚ฝ์ž… ์ •๋ ฌ(Insertion Sort)

  • ์† ์•ˆ์˜ ์นด๋“œ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์œ ์‚ฌ
  • ์ž๋ฃŒ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด ๋ถ€๋ถ„๊ณผ ๋น„๊ต
  • ๋น„๊ต ํ›„ ์ž์‹ ์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„ ์‚ฝ์ž…ํ•จ์œผ๋กœ์จ ์ •๋ ฌ์„ ์™„์„ฑ
  • ๋งค ์ˆœ์„œ๋งˆ๋‹ค ํ•ด๋‹น ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ฐพ์•„ ํ•ด๋‹น ์œ„์น˜์— ์ ์žฌ

์ฝ”๋“œ

function solution(...arr) {
  let answer = arr;

  for(let i = 1; i < arr.length; i++) { //์‚ฝ์ž… ์ •๋ ฌ ๋‘ ๋ฒˆ์งธ ์ž๋ฃŒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค ์ดˆ๊ธฐ๊ฐ’ 1
    for(let j = i; j > 0; j--) { //ํ˜„์žฌ ์ž์‹  ์•ž์— ๋†“์—ฌ ์žˆ๋Š” ์ž๋ฃŒ ๋ฐฐ์—ด์˜ ๊ฐฏ์ˆ˜๋งŒํผ ์ˆœํšŒํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๊ฐฏ์ˆ˜๋งŒํผ ์ดˆ๊ธฐ๊ฐ’ ํ• ๋‹น
      if(arr[j] < arr[j - 1]) {
        [arr[j - 1], arr[j]] = [arr[j], arr[j - 1]];
      } else break; // ์ž์‹ ์˜ ์•ž์— ์š”์†Œ๋ณด๋‹ค ํฌ๋‹ค๋Š” ๊ฒƒ์€ ๊ทธ ์ดํ›„์— ๋‚˜์˜ค๋Š” ์–ด๋– ํ•œ ์ˆ˜๋ณด๋‹ค๋„ ์ž‘์•„์งˆ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ˆœํšŒ ์ข…๋ฃŒ
    }
  }

  return answer;
}

console.log(solution(11, 7, 5, 6, 10, 9));

function solution(arr){
                let answer=arr;
                for(let i=0; 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; //๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆœํšŒ๊ฐ€ ๋๋‚œ ์œ„์น˜์— tmp ์‚ฝ์ž…
                } 
                return answer;
            }

            let arr=[11, 7, 5, 6, 10, 9];
            console.log(solution(arr));