스터디/알고리즘

[알고리즘][C++] 선택정렬

y00&z1 2022. 7. 26. 02:01

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