1. ์ ํ์ ๋ ฌ(Selection Sort) ์๊ณ ๋ฆฌ์ฆ
- ์ ์๋ฆฌ ์ ๋ ฌ(in-place sorting) ์๊ณ ๋ฆฌ์ฆ์ ํ๋
→ merge sort๋ quick sort์ฒ๋ผ ์์๋ถํ ์ ์ถ๊ฐ์ ์ธ ๊ณต๊ฐ์ด ํ์ํ์ง ์์ ์ ๋ ฌ. ๋ฒ๋ธ, ์ฝ์ , ์ ํ์ ๋ ฌ ๋ฑ - ํด๋น ์์์ ์์๋ฅผ ๋ฃ์ ์์น๋ ์ด๋ฏธ ์ ํด์ ธ ์๊ณ , ๊ทธ ์์น์ ์ด๋ ํ ์์๋ฅผ ๋ฃ์์ง ์ ํํ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ฃผ์ด์ง ๋ฐฐ์ด ์ค ์ต์๊ฐ์ ์ฐพ๋๋ค.
- ๊ทธ ๊ฐ์ ๋งจ ์์ ์์นํ ๊ฐ๊ณผ ๊ต์ฒด
- ๋งจ ์ฒ์ ์์น๋ฅผ ๋บ ๋๋จธ์ง ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ต์ฒด
- ํ๋์ ์์๋ง ๋จ์ ๋๊น์ง ์ ๋ฐฉ๋ฒ์ ๋ฐ๋ณต
2. ์ ํ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํ
# include <stdio.h>
# define SWAP(x, y, temp) ( (temp)=(x), (x)=(y), (y)=(temp) )
# define MAX_SIZE 5
// ์ ํ ์ ๋ ฌ
void selection_sort(int list[], int n){
int i, j, least, temp;
// ๋ง์ง๋ง ์ซ์๋ ์๋์ผ๋ก ์ ๋ ฌ๋๊ธฐ ๋๋ฌธ์ (์ซ์ ๊ฐ์-1) ๋งํผ ๋ฐ๋ณตํ๋ค.
for(i=0; i<n-1; i++){
least = i;
// ์ต์๊ฐ์ ํ์ํ๋ค.
for(j=i+1; j<n; j++){
if(list[j]<list[least])
least = j;
}
// ์ต์๊ฐ์ด ์๊ธฐ ์์ ์ด๋ฉด ์๋ฃ ์ด๋์ ํ์ง ์๋๋ค.
if(i != least){
SWAP(list[i], list[least], temp);
}
}
}
void main(){
int i;
int n = MAX_SIZE;
int list[n] = {9, 6, 7, 3, 5};
// ์ ํ ์ ๋ ฌ ์ํ
selection_sort(list, n);
// ์ ๋ ฌ ๊ฒฐ๊ณผ ์ถ๋ ฅ
for(i=0; i<n; i++){
printf("%d\n", list[i]);
}
}
3. ์ ํ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ํน์ง
3-1. ์ฅ์
- ๊ตฌํ์ด ์ฝ๋ค.
- ์๋ฃ ์ด๋ ํ์๊ฐ ๋ฏธ๋ฆฌ ๊ฒฐ์ ๋จ.
- ๋น๊ตํ๋ ํ์์ ๋นํด ๊ตํ์ด ์ ๊ฒ ์ผ์ด๋จ.
3-2. ๋จ์
- ์์ ์ฑ์ ๋ง์กฑํ์ง ์๋๋ค.
→ ๊ฐ์ด ๊ฐ์ ๋ ์ฝ๋๊ฐ ์๋ ๊ฒฝ์ฐ ์๋์ ์ธ ์์น๊ฐ ๋ณ๊ฒฝ๋ ์ ์๋ค. - ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ค ๋นํจ์จ
→ ๋ฒ๋ธ์ ๋ ฌ์ ๋นํด ์กฐ๊ธ ๋ ๋น ๋ฅธ ์ ๋ ฌ๋ฐฉ์
์ฐธ๊ณ ) https://gmlwjd9405.github.io/2018/05/06/algorithm-selection-sort.html
[์๊ณ ๋ฆฌ์ฆ] ์ ํ ์ ๋ ฌ(selection sort)์ด๋ - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
์ฐธ๊ณ ) https://cocoon1787.tistory.com/687
[Algorithm] ์ ํ ์ ๋ ฌ(Selection Sort) ์ด๋?
๐ ์ ํ ์ ๋ ฌ(Selection Sort)์ด๋? ์ ํ ์ ๋ ฌ(Selection Sort)์ ํด๋น ์์์ ์์๋ฅผ ๋ฃ์ ์์น๋ ์ด๋ฏธ ์ ํด์ ธ ์๊ณ , ๊ทธ ์์น์ ์ด๋ ํ ์์๋ฅผ ๋ฃ์์ง ์ ํํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๐ ์ ํ ์ ๋ ฌ์ ํน์ง ์
cocoon1787.tistory.com
์ฐธ๊ณ ) https://yabmoons.tistory.com/250
[ ์ ๋ ฌ ] ์ ๋ ฌ๋ณ ์ฅ๋จ์ ๋ฐ ์๊ฐ๋ณต์ก๋
์ด๋ฒ ๊ธ์์๋ ์ ๋ ฌ๋ณ ์ฅ๋จ์ ๋ฐ ์๊ฐ๋ณต์ก๋๋ฅผ ๋น๊ตํจ์ผ๋ก์จ ์ด๋ค ์ ๋ ฌ์ด ์ ์ผ ์ข๊ณ ๋์์ง๋ฅผ ์์๋ณด์ ! ์ฌ์ค ์ด ์ ๋ ฌ๋ฒ์ด ๋ฌด์กฐ๊ฑด ์ ์ผ ์ข์์ ! ๋ผ๊ณ ๋งํ ์ ์๋ ์ ๋ ฌ๋ฒ์ ์๋ค. ์๋ํ๋ฉด ๊ฐ
yabmoons.tistory.com
'CS > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ์์ด๊ณผ ์กฐํฉ (0) | 2023.01.16 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ํฌํฌ์ธํฐ (0) | 2023.01.16 |
[์๊ณ ๋ฆฌ์ฆ] #5. ํต์ ๋ ฌ (0) | 2023.01.15 |
[์๊ณ ๋ฆฌ์ฆ] #4. ์ฝ์ ์ ๋ ฌ (0) | 2023.01.15 |
[์๊ณ ๋ฆฌ์ฆ] #2. ๋ฒ๋ธ์ ๋ ฌ(๊ฑฐํ์ ๋ ฌ) (0) | 2023.01.14 |