반응형
C Selection Sort로 오름차순 정렬하는 방식입니다.
시간복잡도 : O(n^2)
#include <stdio.h>
void printArray(int value[], int count) {
int i = 0;
for (i = 0; i < count; i++) {
printf("%d ", value[i]);
}
printf("\n");
}
void selectionSort(int value[], int count) {
int i = 0, j = 0, min = 0, temp = 0;
for (i = 0; i < count - 1; i++) {
min = i;
for (j = i + 1; j < count; j++) {
if (value[j] < value[min]) {
min = j;
}
}
temp = value[i];
value[i] = value[min];
value[min] = temp;
printf("Step-%d, ", i + 1);
printArray(value, count);
}
}
int main(int argc, char *argv[]) {
int values[] = { 80, 50, 70, 10, 60, 20, 40, 30 };
printf("Before Selction\n");
printArray(values, 8);
selectionSort(values, 8);
printf("\nAfter Sort\n");
printArray(values, 8);
return 0;
}
반응형
'Programming > C' 카테고리의 다른 글
Sorting(5) Merge Sort(합병 정렬) (0) | 2016.11.01 |
---|---|
Sorting(4) Quick Sort(퀵 정렬) (0) | 2016.11.01 |
Sorting(2) Insertion Sort(삽입 정렬) (0) | 2016.11.01 |
Sorting(1) Bubble Sort(버블 정렬) (0) | 2016.11.01 |
(6) CircularList 사용하기 (0) | 2016.10.30 |
WRITTEN BY
,