기수정렬 모르겠어서 질문드립니다!
#include <stdlib.h>
#include <stdio.h>
void PrintsortedArr(int* a, int n) {
}
void CountingSort(int a[], int n, int b[], int exp) {
int N[10] = { 0 };
for (int i = 0; i < n; i++) {
N[a[i]] / exp % 10]++;
}
for (int i = 1; i <= 9; i++) {
N[i] += N[i - 1];
}
for (int i = 0; i < n; i++) {
b[N[a[i] / exp % 10] - 1] = a[i];;
N[a[i] / exp % 10]--;
}
for (int i = 0; i < n; i++) {
a[i] = b[i];
}
}
void RadixSort(int a[], int n) {
int max = a[0], exp = 1;
int b[10] = { 0 };
for (int i = 1; i < n; i++) {
if (max < a[i]) max = a[i];
}
while (max / exp > 0) {
CountingSort(a, n, b, exp);
exp = exp * 10;
}
}
int main(void)
{
int a[10] = { 213,319,561,636,880,965,635,764,129,120 };
PrintSortedArr(a, 10);
Radixsort(a, 10);
PrintSortedArr(a, 10);
}
위와 같이 기수정렬할때 계수정렬을 이용하는 프로그램을 짜고있는데 PrintSortedArr 여기 출력 부분을 아예 모르겠어서 질문드립니다. 출력부분 전체를 알려주시면 감사하겠습니다 ㅎㅎㅎ
안녕하세요.
질문을 꼼꼼히 읽다가가 다시 문제를 보니..
void PrintsortedArr(int* a, int n) { }를 작성해 달라는 질문이셨던거죠?
void PrintsortedArr(int* a, int n) { for(int i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); }