• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

sort 관련 질문있습니다.

21.05.05 22:47 작성 조회수 138

0

마지막에 scores[i] 와 scores[minIndex]의 값을 바꿔주는 이유는 무엇인가요?

굳이 바꾸지 않고 그냥 scores[i] = scores[minIndex]; 로 socres[i]에 값만 넣어주고 scores[minIndex]는 없어져도 상관 없는 것 아닌가요?

답변 2

·

답변을 작성해보세요.

0

rza님의 프로필

rza

2021.05.05

서로의 값을 바꿔주지 않으면 배열 내에 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 가 됩니다.