低位优先的字符串排序

来源:互联网 发布:sql server 月份差 编辑:程序博客网 时间:2024/04/28 21:02
<span style="font-size:18px;">/** * 低位优先的字符串排序(字符串都是定长的) * @author xxxu * */public class LSD {/** * @param a 字符串数组 * @param W 字符串长度 */public void sort(String[] a,int W){//通过前W个字符将a[]排序int N=a.length;int R=65536;//Unicode码值不大于65536String[] aux=new String[N];//从右向左for (int d = W-1;d>=0; d--) {int[] count=new int[R+1];  //计算出现的频率for (int i = 0; i < N; i++) {count[a[i].charAt(d)+1]++;}for (int r = 0; r < R; r++) { //将频率转换为索引count[r+1]+=count[r];}for (int i = 0; i < N; i++) { //将元素分类aux[count[a[i].charAt(d)]++]=a[i];}for (int i = 0; i < N; i++) { //回写a[i]=aux[i];}}}}</span>

0 0
原创粉丝点击