排序 计数排序
来源:互联网 发布:淘宝售后客服绩效考核 编辑:程序博客网 时间:2024/06/06 01:48
计数排序主要思想:
给定一组要排序的序列,找出这组序列中的最大值,然后开辟一个最大值加1大小的数组,将这个数组里面的元素全部置零,然后用这个数组统计出要排序的序列中各个元素出现的次数。等到统计完成的时候,排序就已经完成了。
例:
计数排序是一种非比较的排序方法,它的时间复杂度是O(N+K),空间复杂度是0(K),其中K是要排序的数组的范围。可以看出计数排序是一种以空间呢换取时间的方法。如果当K>N*logN的时候,计数排序就不是好的选择了,因为基于比较排序的算法的下限是O(N*logN)。
优化:
可以看出,计数排序使用于待排序的元素值比较集中的情况。假如先在对1001,1005,1008这三数进行排序,按照上面的方法前1000个空间都被浪费掉了,所以这时候我们对它进行优化。
我们可以找出要排序的这组元素中的最大值和最小值,这样就确定了这组元素的范围,然后开辟这个范围加1大小的数组,然后再将要排序的元素映射到这个新开辟的数组中就可以了。
实现:
阅读全文
0 0
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- svn之bash: syntax error near unexpected token `(' 解决办法
- POJ 3321-Apple Tree(DFS序+树状数组)
- nodejs 注入 inject
- 新人自述
- 结构体的内存对齐
- 排序 计数排序
- solr 新增core并保留数据
- (一)图像分割方法的分类
- BusyBox 中添加新命令
- SpringMVC 简单实例
- 去掉左右两侧的‘,’
- [BZOJ1012][JSOI2008]最大数maxnumber
- NLP sentimentic analysis
- GPU虚拟化技术