728x90
선택정렬은 다음을 따른다.
1. 최소값 탐색.
2. 최소값을 탐색한 리스트 맨앞으로 이동시킴.
3. 가장 최근에 최소값이 이동된 제외하고 위의 과정 반복.
따라서 최소값의 위치에 따라 최악의 경우
시간복잡도가 n^2까지 될 수 있다.
#include <stdio.h>
void main()
{
int arr[10] = { 3, 2, 1, 5, 4, 7, 8, 0, 6, 9 };
int arrsize = sizeof(arr) / sizeof(arr[0]);
int temp = 0, i, j, minidx;
for (i = 0; i < arrsize - 1; i++)
{
minidx = i;
for (j = i+1; j < arrsize; j++)
{
if (arr[j] < arr[minidx])
{
minidx = j;
}
}
temp = arr[minidx];
arr[minidx] = arr[i];
arr[i] = temp;
}
for (i = 0; i < arrsize; i++) {
printf("%d ", arr[i]);
}
}
728x90
'Computer Science > Data Structure, Algorithm' 카테고리의 다른 글
Jungol] 1178 : 정수의 곱과 자릿수 (0) | 2015.07.20 |
---|---|
Algorithm] Insertion Sort(삽입정렬) (0) | 2015.07.11 |
Algorithm] Quick Sort(퀵정렬) (0) | 2015.07.11 |
Algorithm] Bubble Sort(버블정렬, 거품정렬) (0) | 2015.05.26 |
Jungol] 1141 : 불쾌한 날 (0) | 2015.04.19 |