해결된 질문
작성
·
231
0
마지막에 scores[i] 와 scores[minIndex]의 값을 바꿔주는 이유는 무엇인가요?
굳이 바꾸지 않고 그냥 scores[i] = scores[minIndex]; 로 socres[i]에 값만 넣어주고 scores[minIndex]는 없어져도 상관 없는 것 아닌가요?
답변 2
0
서로의 값을 바꿔주지 않으면 배열 내에 scores[i]의 값이 2개가 남게 됩니다.
예를 들어,
2 1 3 4 5 에서
scores[i]는 2고 scores[minIndex]는 1이 되는데
최소값을 앞으로 정렬해주고 싶은 것이므로
2 2 3 4 5가 되지 않고
1 2 3 4 5 가 되려면 scores[minIndex]에는 원래 scores[i]에 있던 값을 넣어줘야 합니다.
0
그렇게 되면 기존에 있던 값을 하나 유실하게 됩니다. 예를 들어
7 1 2 4 을 정렬할 때 i = 0이라면
1 7 2 4 이렇게 뒤바꿔줘야 하는데
scores[0]에 값만 넣어주면 1 1 2 4 가 됩니다.