ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
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));
'์๊ณ ๋ฆฌ์ฆ > ํ๊ทธ ๋ณ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฅ๋๊พธ๋ฌ๊ธฐ ํ์ (0) | 2021.07.21 |
---|---|
Least Recently Used (0) | 2021.07.20 |
Special Sort (0) | 2021.07.18 |
๋ฒ๋ธ ์ ๋ ฌ (0) | 2021.07.18 |
์ ํ ์ ๋ ฌ (0) | 2021.07.17 |
๋๊ธ