공부
선택정렬 알고리즘 C++ 소스코드(Selection Sort Source Code)
Zedd0202
2017. 3. 29. 16:17
반응형
ㅂㄷㅂㄷ
여러분 선택정렬이 뭐랬죠?
"선택 정렬(selection sort)은 정렬되지 않은 데이터들에 대해
가장 작은 데이터를 찾아 가장 앞의 데이터와
교환해나가는 방식이다."
선택정렬이 아직 뭔지 모르신다면 이 글을 읽고오세요.
하지만
인터넷에 selection sort c++이라고 치면
물론!! 제대로 짠 소스코드들도 많지만,
굉장히 선택정렬의 정의에 어긋한 소스코드가 많다는 것입니다ㅠㅠ
어디라고 말을 할 수는 없지만, 어떤 코드인지 제가 직접 짜서 보여드리자면,
자, 제대로 정렬이 됐네요?
(저는 그냥 swap를 썼는데, temp변수를 선언해서 해도 됩니다.
오늘 논점은 이것이 아니니 그냥 swap을 쓰겠습니다.)
위 코드가 선택정렬 소스코드일까요?
네. 아니에요
(혹시 또 헷갈리실까봐 말하는 거지만, 버블정렬 코드도 아닙니다.
버블정렬은 인접한 데이터끼리 교환하는 정렬알고리즘이죠?
위 코드는 기준이 데이터를 하나 잡고 그 데이터 이후의 데이터들과 비교하는 코드이므로 버블정렬 코드는 아닙니다.)
위 코드는 전혀 선택정렬의 정의를 따르고있지 않아요.
선택정렬은 주어진 데이터 내에서 가장 작은 데이터를 일단 찾아야합니다.
위 코드는 일단 기준이 데이터보다 작으면 바꾸죠.
굉~~장히 비효율적인 코드입니다.
선택정렬의 코드는
위 코드가 되겠네요.
반응형