博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cs61b homework10
阅读量:5107 次
发布时间:2019-06-13

本文共 1074 字,大约阅读时间需要 3 分钟。

part1:countingsort的算法感觉还是蛮绕的,贼烧脑,注意是对16进制的每一位进行排序,取得相应位数值算法可以写成(keys[i]%(whichDigit+1))/whichDigit;

code:

1 public static int[] countingSort(int[] keys, int whichDigit) { 2         if(whichDigit>7||whichDigit<0) 3             return null; 4         int sort[]=new int[keys.length]; 5         double num=Math.pow((double)16, (double)(whichDigit+1)); 6         double num3=Math.pow((double)16, (double)(whichDigit)); 7         int num2=(int)num; 8         int num4=(int)num3; 9         for(int i=0;i

part2:radixsort在coutingsort基础上叠加7次,到int的取值范围即可。

code:

1 public static int[] radixSort(int[] keys) {2           int[]radixsort=new int[keys.length];3           for(int i=0;i

运行结果:

keys are [ 60013879 11111119 2c735010 2c732010 7fffffff 4001387c 10111119 529a7385 1e635010 28905879 11119 0 7c725010 1e630010 111111e5 61feed0c 3bba7387 52953fdb 40013879 ]keys are [ 0 11119 7fffffff 10111119 11111119 111111e5 1e630010 1e635010 28905879 2c732010 2c735010 3bba7387 40013879 4001387c 52953fdb 529a7385 60013879 61feed0c 7c725010 ]

 

转载于:https://www.cnblogs.com/lyz1995/p/7282574.html

你可能感兴趣的文章
mmap和MappedByteBuffer
查看>>
Linux的基本操作
查看>>
转-求解最大连续子数组的算法
查看>>
对数器的使用
查看>>
OracleOraDb11g_home1TNSListener服务启动后停止,某些服务在未由其他服务或程序使用时将自己主动停止...
查看>>
Redis用户添加、分页、登录、注册、加关注案例
查看>>
练习2
查看>>
【ASP.NET】演绎GridView基本操作事件
查看>>
ubuntu无法解析主机错误与解决的方法
查看>>
尚学堂Java面试题整理
查看>>
MySQL表的四种分区类型
查看>>
[BZOJ 3489] A simple rmq problem 【可持久化树套树】
查看>>
STM32单片机使用注意事项
查看>>
swing入门教程
查看>>
好莱坞十大导演排名及其代表作,你看过多少?
查看>>
Loj #139
查看>>
StringBuffer是字符串缓冲区
查看>>
hihocoder1187 Divisors
查看>>
java入门
查看>>
Azure 托管镜像和非托管镜像对比
查看>>