计数排序是需要假设输入数据的排序之一,它假设输入元素是0到k区间内的一个整数,其中k为某个整数。当k=O(n)时,计数排序的时间复杂度为θ(n)。

因为不是通过比较来排序,所以它的时间复杂度可以达到θ(nlgn)以下。

计数排序是稳定的排序之一。

代码如下:(仅供参考)

//计数排序期望输入数据都是小区间内的整数
void CountingSort(int * const begin, int * const end) {
vector<int> temp(); //假设输入值小于10000
vector<int> out(end - begin); for (int i = ; i < end - begin; ++i)
++temp[*(begin + i)];
for (int i = ; i < ; ++i)
temp[i] += temp[i-];
for (int i = end - begin - ; i >= ; --i) {
out[temp[*(begin + i)] - ] = *(begin + i);
--temp[*(begin + i)];
}
for (int i = ; i < end - begin; ++i)
*(begin + i) = out[i];
}

最新文章

  1. [Asp.net 5] Options-配置文件之后的配置
  2. iOS Waxpatch项目(动态更新)
  3. CMD:在当前文件夹下打开cmd命令
  4. OpenStack部署工具总结
  5. Action中获取servletAPI对象的方法
  6. HTML5触屏版多线程渲染模板技术分享
  7. 安卓 开发 The connection to adb is down, and a severe error has occured.
  8. ES PES TS
  9. elisp语法
  10. BZOJ 2818GCD
  11. win7无法识别U盘,驱动信息:该设备的驱动程序未被安装。 (代码 28)
  12. java数据结构-非线性结构之树
  13. vs 自动生成core dump文件
  14. Vsftp配置都没有问题 连接不上 530 Login incorrect 解决方法
  15. 安卓和iOS移动APP开发设计应该考虑哪些问题
  16. [0] 错误1“GenerateResource”任务意外失败。....
  17. require.js详解
  18. Java工程师的终极书单
  19. [补档]Cube
  20. FFmpeg: FFmepg中的sws_scale() 函数分析

热门文章

  1. MySQL硬核干货:从磁盘读取数据页到缓冲池时,免费链表有什么用?
  2. 【十日冲刺计划】第一日 星遇Sprint1计划会议成果
  3. C#——发送邮件
  4. Linux-线程引入
  5. POJ - 1061 扩展欧几里德算法+求最小正整数解
  6. Java开学测试感想
  7. 别了JetBrains,换Visual Studio
  8. eclipse Java EE 与 Java 区别
  9. 零相关|回归|相关|相关系数|回归解释相关|r判断相关性|相关系数的区间估计|数据类型|非线性回归
  10. Tomcat8 启动报错