for (i=0 ...
for(j=i+1 ..
: 최소 값을 찾아서 i 지점과 swap
💥i=0💥
13 | 5 | 11 | 7 | 23 | 15 |
5 | 13 | 11 | 7 | 23 | 15 |
💥i=1💥
idx = i;
for(j=i+1; j<n; j++) {
if(a[j]<a[idx]) idx=j;
}
tmp=a[i];
a[i]=a[idx];
a[idx]=tmp;
a[idx] = 13
a[j] = 11
-> idx=j
-> a[idx]=11
a[idx] = 11
a[j] = 7
-> idx=j
-> a[idx]=7
==> idx 값이 계속 바뀌면서
idx=3 가장 작은 값의 인덱스를 저장하게 됨!
5 | 7 | 11 | 13 | 23 | 15 |
💥i=2💥
5 | 7 | 11 | 13 | 23 | 15 |
💥i=3💥
5 | 7 | 11 | 13 | 23 | 15 |
💥i=4💥
5 | 7 | 11 | 13 | 15 | 23 |
**참고
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
'스터디 > 알고리즘' 카테고리의 다른 글
[알고리즘][C++] Special Sort (0) | 2022.07.29 |
---|---|
[알고리즘][C++] 버블정렬 (0) | 2022.07.26 |
[알고리즘][C++] 3의 개수 (시간제한) 🌟 (0) | 2022.07.25 |
[알고리즘][C++] N!에서 0의 개수 (0) | 2022.07.22 |
[알고리즘][C++] N!의 표현법 (0) | 2022.07.22 |