티스토리 뷰
- 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
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 |