计数排序
Posted gavanwanggw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计数排序相关的知识,希望对你有一定的参考价值。
#include<stdio.h> #include<string.h> int nTestCase[300001]; int nNumbers[32001]; int main() { freopen("sample_input.txt","r",stdin); int i, j, test, currrank, n, max; scanf("%d", &test); while (test--){ currrank = 1; max = 0; scanf("%d", &n); memset(nNumbers, 0, 32000 * sizeof(int)); for (i = 1; i <= n; i++){ scanf("%d", &nTestCase[i]); nNumbers[nTestCase[i]]++; max = max<nTestCase[i] ?nTestCase[i] : max; } for (i = max; i>0; i--){ if (nNumbers[i]){ j = nNumbers[i]; nNumbers[i] = currrank; currrank += j; } } for (i = 1; i <= n; i++) printf("%d ", nNumbers[nTestCase[i]]); printf("\n"); } return 0; }
以上是关于计数排序的主要内容,如果未能解决你的问题,请参考以下文章