基数排序 radixsort(LSD)
来源:互联网 发布:射雕英雄传03 知乎 编辑:程序博客网 时间:2024/06/06 01:22
int maxbit(int data[],int n) //辅助函数,求数据的最大位数{ int d = 1; //保存最大的位数 int p =10; for(int i = 0;i < n; ++i) { while(data[i] >= p) { p *= 10; ++d; } } return d;}void radixsort(int data[],int n) //基数排序{ int d = maxbit(data,n); //位数 int * tmp = new int[n]; //n个数 int * count = new int[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
- 基数排序 radixsort(LSD)
- 基数排序(radixSort)
- 基数排序(radixSort)
- 基数排序(LSD)
- 排序算法-基数排序(RadixSort)
- 基数排序(RadixSort)
- RadixSort (基数排序)
- RadixSort基数排序
- 基数排序(LSD+MSD)详解
- RadixSort(基数排序)的Perl代码
- Java排序算法(八)--基数排序(RadixSort)
- 内部排序之基数排序(RadixSort)
- 数据结构--基数排序(RadixSort)思想与实现
- 基数排序 RadixSort 算法分析
- radixSort 基数排序算法实现
- 【排序算法】基数排序(RadixSort)
- 基数排序-RadixSort
- 基数排序 radixSort 实现
- AES-CBC加密 以及PHP C#实现
- uva 11205(枚举子集)
- 各种排序算法性能比较
- 2014-C第1周项目——初步体验分支结构和循环结构的程序设计 小玩意儿-人体正常身高体重测量器
- java集合学习二List
- 基数排序 radixsort(LSD)
- android学习之----ExpandableListView组件
- POJ 2524 Ubiquitous Religions(并查集)
- MAC文件权限“+“和”@“含义
- 关于Struts2.1.6中配置 constant name="struts.devMode" value="true" 在tomcat启动时报错的问题
- 中超球员涉郭美美案至少性交易2次 6月曾相约有机会再次性交易
- FPGA机器学习之学习的方向
- NOIP2014提高组模拟8.9
- Local classes