편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
36번째 줄: | 36번째 줄: | ||
<syntaxhighlight lang='cpp' run> | <syntaxhighlight lang='cpp' run> | ||
#include <iostream> | #include <iostream> | ||
void counting_sort(int | void counting_sort(int arr[], int size) { | ||
int i, max= | int i, max=arr[0]; | ||
for(i=0; i<size; i++) if( | for(i=0; i<size; i++) if( arr[i]>max ) max=arr[i]; | ||
int output[size], count[max+1] = {0}; | int output[size], count[max+1] = {0}; | ||
for(i=0; i<size; i++) count[ | for(i=0; i<size; i++) count[arr[i]]++; | ||
for(i=1; i<=max; i++) count[i] += count[i-1]; | for(i=1; i<=max; i++) count[i] += count[i-1]; | ||
for(i=0; i<size; i++) { | for(i=0; i<size; i++) { | ||
output[count[ | output[count[arr[i]]-1] = arr[i]; | ||
count[ | count[arr[i]]--; | ||
} | } | ||
for(i=0; i<size; i++) | for(i=0; i<size; i++) arr[i] = output[i]; | ||
} | } | ||
int main() { | int main() { |