计数排序
来源:互联网 发布:2015年各省地税数据 编辑:程序博客网 时间:2024/06/01 10:18
基本思想
假设数序列中小于元素a的个数为n,则直接把a放到第n+1个位置上。当存在几个相同的元素时要做适当的调整,因为不能把所有的元素放到同一个位置上。计数排序假设输入的元素都是0到k之间的整数。
回到顶部
参考代码
#include <stdio.h>void COUNTINGSORT(int *A, int *B, int array_size, int k){ int C[k+1], i, value, pos; for(i=0; i<=k; i++) { C[i] = 0; } for(i=0; i< array_size; i++) { C[A[i]] ++; } for(i=1; i<=k; i++) { C[i] = C[i] + C[i-1]; } for(i=array_size-1; i>=0; i--) { value = A[i]; pos = C[value]; B[pos-1] = value; C[value]--; }} int main(){ int A[8] = {2, 5, 3, 0, 2, 3, 0, 3}, B[8], i; COUNTINGSORT(A, B, 8, 5); for (i=0; i<= 7; i++) { printf("%d ", B[i]); } printf("\n"); return 0;}
回到顶部
图示
对于数据2 5 3 0 2 3 0 3程序执行的过程如下图所示:
0 0
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- nefu oj 986 林大的入学体检(运算符重载在排序中的运用)
- 我博客搬家了
- javascript_BOM&DOM&JSON
- losersaver硕士待遇杂谈
- nginx配置
- 计数排序
- mysql处理海量数据时的一些优化查询速度方法
- nefu987孙大神的面试
- uC/OS-II 函数之OSInit()
- 手动安装fastboot驱动
- Letter Combinations of a Phone Number
- thinkpad T430s 在win8上安装ubuntu双系统(UEFI开启)
- RHEL7破解root密码
- HDU_1017_AMathematicalCuriosity