Computer Science/Data Structure, Algorithm

Algorithm] Selection Sort(선택정렬)

TwinParadox 2015. 5. 26. 21:48
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