您的位置:首页 > 编程语言 > C语言/C++

我的c\c++之旅(五)

2016-05-04 10:07 267 查看

计数排序

/* 假设输入元素都是在[0,k]区间内的整数 */

void counting_sort(int *imput, int *result, int len, int k)
{
int *c, i;

c = (int*)malloc(sizeof(int) * k);
for(i = 0; i < k; i++)
c[i] = 0;
for(i = 0; i < len; i++)
c[imput[i]]++;
for(i = 1; i < k; i++)
c[i] = c[i] + c[i-1];
for(i = 0; i < len; i++) {
result[c[imput[i]]-1] = imput[i];
c[imput[i]]--;
}
free(c);
}
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: