// countingSort.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
#define MAX 20
int array[] = { 5, 7, 3, 2, 7, 9, 1, 3, 8, 2 };
int sortret[MAX] = { 0, };
int countsort(int sortret[])
{
int count[MAX] = { 0, };
int arraysize = sizeof(array) / sizeof(array[0]);
for (int i = 0; i < arraysize; i++)
{
count[array[i]] += 1 ;
}
for (int i = 1; i < arraysize; i++)
{
count[i] = count[i] + count[i - 1];
}
int idx = 0;
for (int i = arraysize - 1; i >= 0; i--)
{
idx = count[array[i]];
sortret[idx] = array[i];
count[array[i]]--;
}
return arraysize;
}
int _tmain(int argc, _TCHAR* argv[])
{
int sortsize = 0;
sortsize = countsort(sortret);
// 1부터 사용한다!!
for (int i = 1; i < sortsize; i++)
{
cout << sortret[i] << ' ';
}
return 0;
}