void selectionsort(int list[], int n)
{
for(int i=0; i<n-1; i++) // i는 늘 j보다 1 작음. 앞 뒤의 수를 비교해줘야 하므로.
{
int min = i;
for(int j=i+1; j<n; j++) // j는 i보다 늘 1 더 큼.
if(list[j] < list[min]) // 저장되어있는 배열의 숫자들에서 list[1] 배열에 있는 수 보다 list[0] 배열에 있는 수가 크면
min = j; // min에 j값을 저장시키고
swap(list[i], list[min]); // 앞 뒤 순서를 바꿔주는 swap 함수 실행
}
이러한 알고리즘이 있는데요.
궁금한게, 굳이 min이라는 변수를 선언해서 i를 저장시켰다가 j를 저장시켰다가 하는 이유를 모르겠습니다.
그냥 반복문만 해서
for(int i=0; i<n-1; i++)
{
for(int j=i+1; j<n; j++)
if(list[j] < list[i])
swap(list[i], list[j]);
}
해주면 되지 않나요???