티스토리 뷰
- 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
void SelectionSort(int arr[], int MAX) { |
SelectionSort 함수의 인자 arr은 정렬되지 않은 배열이고 MAX는 배열의 개수가 들어온다. 함수는 처음에 min에 i의 값을 넣는다. 그리고 두번째 for문이 돌아가면서 arr[min] 보다 작은 값을 발견하면 min의 값을 j로 바꾼다. 그리고 j 변수로 돌아가는 for문이 완료 되었을 때 arr[i]와 arr[min]의 값을 교환한다. 쉽게 구현할 수 있는 만큼 프로그래밍시 개인적으로 자주 사용하는 정렬 기법이다.
자료구조를 처음배우거나, 알고리즘이 익숙하지 않으면(나같으면) 충분히 머리 아플 수 있다.. 그래서 동영상을 하나 준비했다. 루마니아 사피엔티아 대학교에서 촬영한 'Select-sort with Gypsy folk dance'. 선택 정렬을 집시 포크 댄스로 표현했다. 동영상을 보고나면 선택 정렬이 어떤 놈인지 대충 감이 잡힌다.
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
선택 정렬에서 두개의 반복문(위의 소스에서 for문)이 돌면서 시행되는 연산의 횟수는 다음과 같다.
(MAX는 배열의 개수)
(이렇게 표현하기도 한다.)
'컴퓨터공학' 카테고리의 다른 글
| 운영체제 03 : 운영체제 서비스, 사용자 인터페이스 (0) | 2014.04.27 |
|---|---|
| 운영체제 02 : 운영체제 과목 전체 개요 - 2 (2) | 2014.04.22 |
| 운영체제 01 : 운영체제 과목 전체 개요 - 1 (2) | 2014.04.20 |
| CentOS 6.5 리눅스에 JSP 서비스를 위한 Tomcat 설치하기 (25) | 2014.04.11 |
| CentOS 6.5 리눅스에 JSP 서비스를 위한 JDK 설치하기 (9) | 2014.04.10 |
| 자료구조 01 : 정렬 도입부, 순차탐색, 이진탐색 (2) | 2014.03.30 |
| 데이터통신, 정보시스템 개론 포스팅을 시작하며 (0) | 2014.03.30 |