论坛首页 招聘求职论坛

JMS接收消息实例

浏览 20580 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-24  
世界上只有一种排序叫冒泡么?
第一题的复杂度是O(n),第二题也是,你顺手一起做了,结果是O(nlogn),恭喜你啊。效率真高。
0 请登录后投票
   发表时间:2008-10-24  
楼上赐教一个效率高的算法吧,正好学习学习。
0 请登录后投票
   发表时间:2008-10-24  
malk 写道
楼上赐教一个效率高的算法吧,正好学习学习。

第一题,counting sort,不懂去introduction to algorithms,或者google。
第二题,还是counting sort的一部分,就是你上面comment的那段就差不多了
0 请登录后投票
   发表时间:2008-10-24  
这种分段排序倒是不错
0 请登录后投票
   发表时间: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,没有出现大写字符,按照题目的要求来就行。
0 请登录后投票
   发表时间:2008-10-25  
第一题可以用快速排序嘛,O(nlogn)。如果字母少的话,其实那种算法都一样
0 请登录后投票
   发表时间:2008-10-26  
taupo 写道
第一题可以用快速排序嘛,O(nlogn)。如果字母少的话,其实那种算法都一样

nlogn很牛?
0 请登录后投票
   发表时间: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);
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics