#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <limits.h>
#define SIZE 1000
// 배열 선언
int a[SIZE];
// 교환 함수 선언
int swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main(void) {
// n : 총 숫자의 개수
// min : 남은 배열 중 최소값
// index : 최소값의 인덱스
int n, min, index;
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%d", &a[i]);
// 선택 정렬
for (int i = 0; i < n; i++) {
min = INT_MAX;
for (int j = i; j < n; j++) {
if (min > a[j]) {
min = a[j];
index = j;
}
}
swap(&a[i], &a[index]);
}
// 선택 정렬된 배열 전체 출력
for (int i = 0; i < n; i++) printf("%d ", a[i]);
system("pause");
return 0;
}
선택 정렬보다는 약간 빠름
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <limits.h>
#define SIZE 1000
// 배열 선언
int a[SIZE];
// 교환 함수 선언
int swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main(void) {
// n : 총 숫자의 개수
// min : 남은 배열 중 최소값
// index : 최소값의 인덱스
int n, min, index;
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%d", &a[i]);
// 삽입 정렬
for (int i = 0; i < n - 1; i++) {
int j = i;
while (j >= 0 && a[j] > a[j + 1]) {
swap(&a[j], &a[j + 1]);
j--;
}
}
// 삽입 정렬된 배열 전체 출력
for (int i = 0; i < n; i++) printf("%d ", a[i]);
system("pause");
return 0;
}