상세 컨텐츠

본문 제목

Algorithm. 선택정렬

문제풀이

by Indigo_Pure 2017. 2. 16. 01:18

본문

728x90
반응형

Algorithm 선택(Selection)정렬


선택정렬입니다. 아주 간단한 정렬 방법이라는 이야기가 있습니다.

하지만 배열의 위치에 대한 이해가 다소 까다로울 수 있다고 생각했습니다.


선택정렬이라는 것은 세 단계를 거쳐 진행됩니다. (위키 참조)

먼저 배열에서 가장 작은 수를 찾습니다.

가장 작은 수를 배열의 맨 앞자리의 수와 교환합니다.

첫 번째 자리는 완료 두번째 자리부터 다시 반복합니다.


순차적으로 제일 작은 수를 맨 앞자리에 위치하게 하는 순환입니다.

* 채워진 배열의 자리는 제외.





배열의 자리에 대한 개념이 모호하게 이해를 하고 작성한 코드입니다.

가장 작은 숫자의 자릿수를 저장하는 minIndex의 저장위치가 잘못 되었을 뿐만 아니라 사용처도 없습니다.


가장 작은 숫자의 위치를 기억한다는 개념이 있어야 minIndex를 옳바르게 사용할 수 있습니다.




가장 첫 번째 자리를 초기 minIndex라고 지정을 하고

초기 minIndex자리의 값보다 작은 값을 찾기 위해 다음 값들을 순차적으로 비교합니다.

더 작은 값이 있다면 그 자리가 다시 minIndex가 됩니다. 그리고 그 다음 값을 다시 비교합니다.

한 번 배열을 돌면서 가장 작은 값들을 찾았다면

초기 설정 위치인 가장 첫번째 배열 위치와 찾은 minIndex값을 교환합니다.


가장 작은 값이 배열의 가장 앞을 차지했습니다. 이제 다음 작은 수를 찾아 두번째 자리를 차지하게 됩니다.

이렇게 배열의 길이만큼 순환하면 선택정렬로 배열이 정렬됩니다.





참고사이트: www.zerocho.com/category/Algorithm

728x90
반응형

'문제풀이' 카테고리의 다른 글

Algorithm. 계수정렬  (0) 2017.03.06
Algorithm. 퀵정렬  (0) 2017.02.25
Algorithm. 버블정렬  (0) 2017.02.14
Algorithm. 합병정렬  (0) 2017.02.12
Algorithm. 삽입정렬  (0) 2017.02.09

관련글 더보기