- ์ฝ์ ์ ๋ ฌ์ ์๋ฃ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ์ด๋ฏธ ์ ๋ ฌ๋ ๋ฐฐ์ด ๋ถ๋ถ๊ณผ ๋น๊ตํ์ฌ, ์์ ์ ์์น๋ฅผ ์ฐพ์ ์ฝ์ ํจ์ผ๋ก์จ ์ ๋ ฌ์ ์์ฑํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ์ ํ์ ๋ ฌ, ๋ฒ๋ธ์ ๋ ฌ์ ์ด์คํฌ๋ฌธ์ผ๋ก ์์๋ค์ ๋ชฝ๋ ๊ฒ์ฌํ๋ฉด์ ์์น๋ฅผ ๋ฐ๊พธ๋ ์ ๋ ฌ์ด์์ง๋ง, ์ฝ์ ์ ๋ ฌ์ ์กฐ๊ฑด์ ๊ฑธ์ด ํ์ํ ๋๋ง ์์น๋ฅผ ๋ฐ๊พธ๊ฒ ๋๋ค.
- ๋น๊ต์ ๊ตํ์ ํตํด ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ฏ๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ์๋ก ํ์ง ์๊ธฐ์ ์ ์๋ฆฌ ์ ๋ ฌ์ ๋๋ค.(in-place sorting)
- ๋ฐฐ์ด์ด ๊ธธ์ด์ง์๋ก ํจ์จ์ด ๋จ์ด์ง๋ค. ๋ค๋ง, ๊ตฌํ์ด ๊ฐ๋จํ๋ค๋ ์ฅ์ ์ด ์๋ค.
- ์ ๋ ฌํ๊ณ ์ ํ๋ ๋ฐฐ์ด ์์์ ๊ตํํ๋ ๋ฐฉ์์ด๋ฏ๋ก, ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ์๋ก ํ์ง ์๋๋ค.
- ์ ๋ ฌ์ 2๋ฒ์งธ ์์น(index)์ ๊ฐ์ temp์ ์ ์ฅํ๋ค
- temp์ ์ด์ ์ ์๋ ์์๋ค๊ณผ ๋น๊ตํ์ฌ ์๋ฆฌ๋ฅผ ๋ฐ๊พธ๋ฉฐ ์ฝ์ ํด ๋๊ฐ๋ค.
- 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);
};
- CreatedAt 2023.01.01