基数排序
来源:互联网 发布:p2p网络投资产品排行 编辑:程序博客网 时间:2024/06/04 18:27
//转载自百度百科。复杂度O(nk)。void radixsort(int data[], int n) //基数排序{ int d = maxbit(data, n); int *tmp = newint[n]; int *count = newint[10]; //计数器 int i, j, k; int radix = 1; for(i = 1; i <= d; i++) //进行d次排序 { for(j = 0; j < 10; j++) count[j] = 0; //每次分配前清空计数器 for(j = 0; j < n; j++) { k = (data[j] / radix) % 10; //统计每个桶中的记录数 count[k]++; } for(j = 1; j < 10; j++) count[j] = count[j - 1] + count[j]; //将tmp中的位置依次分配给每个桶 for(j = n - 1; j >= 0; j--) //将所有桶中记录依次收集到tmp中 { k = (data[j] / radix) % 10; tmp[count[k] - 1] = data[j]; count[k]--; } for(j = 0; j < n; j++) //将临时数组的内容复制到data中 data[j] = tmp[j]; radix = radix * 10; } delete[]tmp; delete[]count;}
阅读全文
0 0
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- 基数排序
- h5中css利用div画简易多边形
- XSLT教程
- 【Python】Django集成Github登陆
- linux基础学习10
- idea使用maven项目中断点不可用的解决方法
- 基数排序
- Qt5.9.1 Windows下QPlainTextEdit无法正常垂直填充QFormLayout的问题
- 中国国内采购平台数据量规模排行
- mysql中多个left join子查询写法以及别名用法
- shell常用条件表达式
- 复制表结构和数据SQL语句
- Unsupported major.minor version 52.0解决方法
- 依赖注入
- 解决Python2操作中文名文件乱码的问题