본문 바로가기
프로그래밍 _공부자료./C++ 공부

C++ 선택정렬

by 대구부자 2019. 12. 3.
반응형



아래는 C++ 선택 정렬에 대한 코드 이다.

코드 의 주석과 함께 바로 코드 해석이 안되면 코드 아래 설명을

첨부 드릴게요 ! 





선택 정렬의 핵심은 , 

배열의 첫 번째 요소 즉, 0번째 인덱스를 선택해서

이외 다른 배열의 요소들과 비교 해가며

최소 값을 먼저 찾는 것에 있다!


2중 포문의 사용 이유는 비교를 하기 위해서다.


즉) 첫번째 포문의 0번째 인덱스의 값을

Min 값에 복사 한후,

두번째 for문을 돌게 되면,

배열의 사이즈가 5라고 가정 한다면,

첫번재 포문 0번째Index 를 제외한


1,2,3,4 번째 인덱스와 비교 하게 되면서,


조건 문에서 min값이 두번째 포문의 인덱스 값 보다 크다면 ,

안쪽에서 인덱스는 잠깐 복사를 해두고 

min 값에는 값을 덮어씌워 버린다.


아래가 핵심이다!

(덮어 씌워 버리는 이유는 계속 해서 0번째 인덱스와 비교를 해야 하기 때문이다.)


여기도 핵심!

이후 안쪽 포문이 완전히 돌고 난후 , 값을 바꿔 줘야 한다!


0번째 인덱스와

그외 1,2,3,4 번째 인덱스 중에 

가장 작은 값은 0번째에 담기게 될 것이다.


이후 바뀐후 

다시 제일 위의 for문으로 올라 가게 되고

이번에는

1번째 인덱스와

2,3,4 번째 인덱스 중에,

가장 작은 값이 1번째 인덱스에 저장 되는 로직이


반복 하게 되는 원리이다.






반응형

댓글