Skip to content

Latest commit

ย 

History

History
55 lines (40 loc) ยท 2.17 KB

insertion-sort.md

File metadata and controls

55 lines (40 loc) ยท 2.17 KB

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

ํŠน์ง•

  • ์‚ฝ์ž… ์ •๋ ฌ์€ ์ž๋ฃŒ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด ๋ถ€๋ถ„๊ณผ ๋น„๊ตํ•˜์—ฌ, ์ž์‹ ์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„ ์‚ฝ์ž…ํ•จ์œผ๋กœ์จ ์ •๋ ฌ์„ ์™„์„ฑํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.
  • ์„ ํƒ์ •๋ ฌ, ๋ฒ„๋ธ”์ •๋ ฌ์€ ์ด์ค‘ํฌ๋ฌธ์œผ๋กœ ์›์†Œ๋“ค์„ ๋ชฝ๋•… ๊ฒ€์‚ฌํ•˜๋ฉด์„œ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋Š” ์ •๋ ฌ์ด์—ˆ์ง€๋งŒ, ์‚ฝ์ž…์ •๋ ฌ์€ ์กฐ๊ฑด์„ ๊ฑธ์–ด ํ•„์š”ํ•  ๋•Œ๋งŒ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๊ฒŒ ๋œ๋‹ค.
  • ๋น„๊ต์™€ ๊ตํ™˜์„ ํ†ตํ•ด ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฏ€๋กœ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๊ธฐ์— ์ œ์ž๋ฆฌ ์ •๋ ฌ์ž…๋‹ˆ๋‹ค.(in-place sorting)
  • ๋ฐฐ์—ด์ด ๊ธธ์–ด์งˆ์ˆ˜๋ก ํšจ์œจ์ด ๋–จ์–ด์ง„๋‹ค. ๋‹ค๋งŒ, ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.
  • ์ •๋ ฌํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐฐ์—ด ์•ˆ์—์„œ ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฏ€๋กœ, ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋กœ์ง

  1. ์ •๋ ฌ์€ 2๋ฒˆ์งธ ์œ„์น˜(index)์˜ ๊ฐ’์„ temp์— ์ €์žฅํ•œ๋‹ค
  2. temp์™€ ์ด์ „์— ์žˆ๋Š” ์›์†Œ๋“ค๊ณผ ๋น„๊ตํ•˜์—ฌ ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พธ๋ฉฐ ์‚ฝ์ž…ํ•ด ๋‚˜๊ฐ„๋‹ค.
  3. 1๋ฒˆ์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ๋‹ค์Œ ์œ„์น˜(index)์˜ ๊ฐ’์„ temp์— ์ €์žฅํ•˜๊ณ  ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„

Name Best Average Worst Memory Stable Comments
Insertion sort n n2 n2 1 Yes

์†Œ์Šค ์ฝ”๋“œ

const insertionSort = (arr) => {
  for (let i = 1; i < arr.length; i++) {
    let temp = arr[i];
    let index = i;

    while (index > 0 && temp < arr[index - 1]) {
      arr[index] = arr[index - 1];
      index--;
    }
    arr[index] = temp;
  }
  console.log(arr);
};

Reference

- CreatedAt 2023.01.01

Back