本帖最后由 waylent 于 2014-10-5 00:21 编辑
楼主的方法真的非常巧妙。针对这道题完成的很好。在这里做一个小小的扩展,就是把字符串改为一个不同数字的数组,这种方法还可以对比较小的数的数组进行排序,比如【21,73,90,1,2,11,32,25,25】,然后定义一个有91个元素的数组int[] num=new num[91],然后num[0]对应0数字出现的次数,num[1]对应1数字出现的次数,以此类推,num[90]对应90出现的次数。通过简单的循环就可以统计出各个数字的个数,然后再按序号输出,就是排好序的数组,代码如下:
- int[] example={21,73,90,1,2,11,32,25,25};
- int[] bucket=new int[91];
- for (int i=0;i<example.length;i++) {
- bucket[example[i]]++;
- }
- for (int i=0;i<bucket.length;i++) {
- for (int j=0;j<bucket[i];j++) {
- System.out.print(i+" ");
- }
- }
复制代码 |