전공/알고리즘 + 코테
[C 언어] 백준 #2750
BBungyaLog
2023. 5. 11. 21:54
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
// selection sort
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void selectionSort(int* A, int n)
{
int i, j;
int max, max_index;
for (i = 0; i < n - 1; i++) {
max = A[0];
max_index = 0;
for (j = 1; j < n - i; j++) {
if (max < A[j]) {
max = A[j];
max_index = j;
}
}
A[max_index] = A[n - 1 - i];
A[n - 1 - i] = max;
}
}
int main(void)
{
int* A;
int n;
scanf("%d", &n);
A = (int*)malloc(sizeof(int) * n);
if (!A)
return 0;
for (int i = 0; i < n; i++)
scanf("%d", &A[i]);
selectionSort(A, n);
for (int i = 0; i < n; i++)
printf("%d\n", A[i]);
free(A);
return 0;
}
풀이
선택정렬(selection sort) 활용