• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

sort 알고리즘에 대해서 질문드립니다.

21.01.23 10:46 작성 조회수 186

0

강의에서는 배열이 뒤죽박죽이지만 만약 이미 정렬이 된 배열이라면 swap 부분에서 같은 값을 의미없이 주고받게 되는 것 같습니다. 그리고 본 강의에서도 10이 첫번째로 나왔고, 가장 작기 때문에 스왑을 하는 의미가 없는 것 같았습니다.

혹시 swap을 하기 전에

if (minIndex == i) 

             continue;

를 통해서 바꿀 필요가 없는 경우 스왑을 생략하고 넘어가는 부분을 넣으면 어떤가요? 큰 의미가 없는 것인지 궁금합니다. 그리고 저 부분을 넣어서 실행해보았을 때, 정상적으로 Sort함수가 작동하였지만 혹시라도 틀린 부분이 있을까요?

마지막으로 강사님께서 sort 알고리즘이 여러가지 있다고 하셔서 검색을 해보았는데 이 방법이 선택정렬(Selction Sort)이 맞을까요?

답변 2

·

답변을 작성해보세요.

1

네 선택 정렬이 맞습니다.

그리고 말씀하신 if 체크를 하는 것도 물론 좋은 선택이고
그럴 경우 아주 미세하게 성능 향상이 있을 수 있습니다.

지금은 swap하는 부분이 애당초 연산량이 많지 않아 큰 차이가 없지만,
그게 아니고 복잡한 로직이 실행되는 것이었다면
반드시 넣어야 하는 필수적인 예외 체크가 되었을 겁니다.

0

안유선님의 프로필

안유선

질문자

2021.01.23

감사합니다!