티스토리 뷰
반응형
ㅂㄷㅂㄷ
여러분 선택정렬이 뭐랬죠?
"선택 정렬(selection sort)은 정렬되지 않은 데이터들에 대해
가장 작은 데이터를 찾아 가장 앞의 데이터와
교환해나가는 방식이다."
선택정렬이 아직 뭔지 모르신다면 이 글을 읽고오세요.
하지만
인터넷에 selection sort c++이라고 치면
물론!! 제대로 짠 소스코드들도 많지만,
굉장히 선택정렬의 정의에 어긋한 소스코드가 많다는 것입니다ㅠㅠ
어디라고 말을 할 수는 없지만, 어떤 코드인지 제가 직접 짜서 보여드리자면,
자, 제대로 정렬이 됐네요?
(저는 그냥 swap를 썼는데, temp변수를 선언해서 해도 됩니다.
오늘 논점은 이것이 아니니 그냥 swap을 쓰겠습니다.)
위 코드가 선택정렬 소스코드일까요?
네. 아니에요
(혹시 또 헷갈리실까봐 말하는 거지만, 버블정렬 코드도 아닙니다.
버블정렬은 인접한 데이터끼리 교환하는 정렬알고리즘이죠?
위 코드는 기준이 데이터를 하나 잡고 그 데이터 이후의 데이터들과 비교하는 코드이므로 버블정렬 코드는 아닙니다.)
위 코드는 전혀 선택정렬의 정의를 따르고있지 않아요.
선택정렬은 주어진 데이터 내에서 가장 작은 데이터를 일단 찾아야합니다.
위 코드는 일단 기준이 데이터보다 작으면 바꾸죠.
굉~~장히 비효율적인 코드입니다.
선택정렬의 코드는
위 코드가 되겠네요.
반응형
'공부' 카테고리의 다른 글
32bit/64bit? (3) | 2017.04.29 |
---|---|
Heap Sort 정렬 알고리즘 ( 개념 / 시간복잡도 -O(nlogn) ) (34) | 2017.04.10 |
JAVA ) 오류: 기본 클래스 ...을(를) 찾거나 로드할 수 없습니다. (39) | 2017.03.10 |
MAC 터미널에서 자바 컴파일하는법 (6) | 2017.03.09 |
합병정렬(Merge Sort) 알고리즘 정리 ( 개념 / 시간복잡도 - O(nlogn) ) (25) | 2017.03.05 |
TAG
- IOS
- 제이슨 파싱
- Git
- swift sort
- Xcode
- 스위프트
- swift 공부
- swift delegate
- UIBezierPath
- SwiftUI
- fastlane
- github
- Accessibility
- 피아노
- iOS delegate
- 회고
- np-complete
- WWDC
- ios 13
- WKWebView
- WidgetKit
- swift3
- Swift
- swift array
- Combine
- FLUTTER
- np-hard
- 스위프트 문법
- actor
- swift tutorial
글 보관함
반응형
- Total
- Today
- Yesterday