본문 바로가기
기초 알고리즘 (C언어)

선택 정렬 알고리즘.

by 웹하는빡통 2019. 10. 1.

 선택 정렬(selection sort)이란

 

 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.

 1.주어진 리스트 중에 최소값을 찾는다.

 2. 그 값을 맨 앞에 위치한 값과 교체한다(PASS)

 3. 맨 처음 위치를 뺸 나머지 리스트를 같은 방법으로 교체한다. 

 

 비교하는 것이 상수 시간에 이루어진다는 가정 아래, n개의 주어진 리스트를 이와 같은 방법으   로 정렬하는 데에는 O(n2) 만큼의 시간이 걸린다.

 선택 정렬은 알고리즘이 단순하며 사용할 수 있는 메모리가 제한적인 경우에 사용시 성능 상의   이점이 있다.

 

 

0
선택 정렬

 

선택 정렬(selection sort) 알고리즘의 원리


배열에 9, 6, 7, 3, 5가 저장되어 있다고 가정하고 자료를 오름차순으로 정렬해 보자.

선택 정렬 원리


1회전:
첫 번째 자료 9를 두 번째 자료부터 마지막 자료까지와 비교하여 가장 작은 값을 첫 번째 위치에 옮겨 놓는다. 이 과정에서 자료를 4번 비교한다.
2회전:
두 번째 자료 6을 세 번째 자료부터 마지막 자료까지와 비교하여 가장 작은 값을 두 번째 위치에 옮겨 놓는다. 이 과정에서 자료를 3번 비교한다.
3회전:
세 번째 자료 7을 네 번째 자료부터 마지막 자료까지와 비교하여 가장 작은 값을 세 번째 위치에 옮겨 놓는다. 이 과정에서 자료를 2번 비교한다.

 

 

 

C언어 소스코드

 

'기초 알고리즘 (C언어)' 카테고리의 다른 글

삽입정렬 알고리즘  (0) 2019.10.01
버블정렬 알고리즘.  (0) 2019.10.01

댓글