인프런 커뮤니티 질문&답변

안유선님의 프로필 이미지
안유선

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

연습 문제

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

작성

·

250

0

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

혹시 swap을 하기 전에

if (minIndex == i) 

             continue;

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

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

답변 2

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

네 선택 정렬이 맞습니다.

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

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

0

안유선님의 프로필 이미지
안유선
질문자

감사합니다!

안유선님의 프로필 이미지
안유선

작성한 질문수

질문하기