锁定老帖子 主题:JMS接收消息实例
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-24
世界上只有一种排序叫冒泡么?
第一题的复杂度是O(n),第二题也是,你顺手一起做了,结果是O(nlogn),恭喜你啊。效率真高。 |
|
返回顶楼 | |
发表时间:2008-10-24
楼上赐教一个效率高的算法吧,正好学习学习。
|
|
返回顶楼 | |
发表时间:2008-10-24
malk 写道 楼上赐教一个效率高的算法吧,正好学习学习。
第一题,counting sort,不懂去introduction to algorithms,或者google。 第二题,还是counting sort的一部分,就是你上面comment的那段就差不多了 |
|
返回顶楼 | |
发表时间:2008-10-24
这种分段排序倒是不错
|
|
返回顶楼 | |
发表时间:2008-10-25
malk 写道 javaboy2006 写道 下面的方法应该更快。 supercrsky 写道 第2题:
public static void count(String str) { // 用于存储a-z出现的次数 int[] nums = new int[26]; for (char i : str.toCharArray()) { // 在字母的范围内 if (i >= 97 && i <= 123) { nums[i - 97]++; } } for (int i = 0; i < nums.length; i++) { // 只显示出现的 if (nums[i] != 0) { System.out.println((char) (97 + i) + ":" + nums[i]); } } } 我到是觉得这个只看第二题来说效率最高,只不过是有大写字母和其他字符就不好办了,如果排序的话也就顺便把第一题也做了 数组的访问应该是最快的。第二题的题目只给出了:wo jiao shenzhen,没有出现大写字符,按照题目的要求来就行。 |
|
返回顶楼 | |
发表时间:2008-10-25
第一题可以用快速排序嘛,O(nlogn)。如果字母少的话,其实那种算法都一样
|
|
返回顶楼 | |
发表时间:2008-10-26
taupo 写道 第一题可以用快速排序嘛,O(nlogn)。如果字母少的话,其实那种算法都一样
nlogn很牛? |
|
返回顶楼 | |
发表时间:2009-01-07
第2题参考:
String test = "Wo jiao cong yang yang"; Map<Character, Integer> map = new TreeMap<Character, Integer>(); for(Character ch : test.toCharArray()) map.put(ch, map.get(ch)==null? 1 :map.get(ch)+1); System.out.println(map); |
|
返回顶楼 | |