ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
N๊ฐ์ ์ซ์๊ฐ ์ ๋ ฅ๋๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ ์ ํ์ ๋ ฌ์ ๋๋ค.
๋ฌธ์ ํ์ด
์ ํ์ ๋ ฌ(Selection Sort)
- ์ ํ์ ๋ ฌ์ ๊ธฐ์กด์ ์๋ฆฌ๊ฐ ์ ํด์ ธ ์์_์ ์๋ฆฌ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
- ์ฃผ์ด์ง ๋ฆฌ์คํธ ์ค์ ์ต์ value๋ฅผ ํ์
- ํด๋น ๊ฐ์ ๋งจ ์์ ์์นํ value ๊ต์ฒด
- ์ฐธ์กฐ๋ฅผ ๋ง์น ํด๋น ์์น์ ์ธ๋ฑ์ค๋ฅผ ์ ์ธํ๊ณ ๋๋จธ์ง ๋ฆฌ์คํธ๋ฅผ ์์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ต์ฒด
- n๊ฐ์ ์ฃผ์ด์ง ๋ฆฌ์คํธ => ์๊ฐ๋ณต์ก๋ ์ n^2
์ฝ๋
function solution(...arr) {
let answer = arr;
for(let i = 0; i < arr.length; i++) {
for(let j = (i + 1); j < arr.length; j++) { //์์ ์ ์ ์ธํ ๋ค์ ์ธ๋ฑ์ค ์์๋ถํฐ ์ํ ๋ฐ ์ฐธ์กฐ
let tmp; //๊ฐ์ด ์ค๋ณต๋์ง ์๊ฒ ์ ๋๋ก ๋ value swap์ ์ํด์ ์์์ ๋ณ์ ์ค์
if(arr[i] > arr[j]) {
tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
return answer;
}
console.log(solution(13, 5, 11, 7, 23, 15));
function solution(...arr) {
let answer = arr;
for(let i = 0; i < arr.length; i++) {
for(let j = (i + 1); j < arr.length; j++) {
if(arr[i] > arr[j]) {
[arr[i], arr[j]] = [arr[j], arr[i]]; //์์ ํ swap์ ์ํ ES6์ ๋์คํธ๋ญ์ณ๋ง ํ ๋น ์ฌ์ฉ
}
}
}
return answer;
}
console.log(solution(13, 5, 11, 7, 23, 15));
'์๊ณ ๋ฆฌ์ฆ > ํ๊ทธ ๋ณ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Special Sort (0) | 2021.07.18 |
---|---|
๋ฒ๋ธ ์ ๋ ฌ (0) | 2021.07.18 |
[ํ]๊ต์ก๊ณผ์ ์ค๊ณ (0) | 2021.07.16 |
[ํ]๊ณต์ฃผ ๊ตฌํ๊ธฐ (0) | 2021.07.15 |
ํ์์ ์ฐ์ฐ(postfix) (0) | 2021.07.13 |
๋๊ธ