`
jerryqiu007
  • 浏览: 230858 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对字符集中字符出现的次数进行排序

阅读更多
import java.util.ArrayList;   
import java.util.Collections;   
import java.util.HashMap;   
import java.util.List;   
import java.util.Map;   
  
/**  
 *  对字符集中字符出现的次数进行排序。 
 */  
public class Test2 {   
	public static void main(String args[]) {   
	    String str = "12345678hfdjkslahfkj932189oiefsjkar94werfdsf";   
	    Map<Character, KeyValue> map = new HashMap<Character, KeyValue>();   
	    char c;   
	    KeyValue kv = null;   
	    for (int i = 0; i < str.length(); i++) {   
			c = str.charAt(i);   
			kv = map.get(c);   
			if (kv == null) {   
				kv = new KeyValue();   
				kv.ch = c;   
				kv.count = 1;   
				map.put(c, kv);   
			} else {   
				kv.count++;   
			}   
	    }   
	    List<KeyValue> list = new ArrayList<KeyValue>(map.values());   
	    Collections.sort(list);   
	    for (KeyValue o : list) {   
	      System.out.println(o.ch + "=" + o.count);   
	    }   
	}   
}   
  
class KeyValue implements Comparable {   

	char ch;	  
	int count;
	
	public int compareTo(Object obj) {   
	    if (obj instanceof KeyValue) {   
	    	KeyValue kv = (KeyValue) obj;   
	    	return kv.count - this.count;   
	    }   
	    return -1;   
	}
} 

 

分享到:
评论

相关推荐

    php常用函数列表 涉及很多好用的字符串函数

    75. **strpbrk($haystack, $mask)**: 查找字符串中是否包含特定字符集中的任意一个字符。 76. **strpos($haystack, $needle, $offset)**: 查找字符串首次出现的位置。 77. **strrchr($haystack, $needle)**: 返回...

    ACM字符串题目及源代码[参照].pdf

    - PKU3693和SPOJ687题目都是关于找出重复次数最多的连续重复子串,这可能需要遍历整个字符串,维护当前子串及其出现次数的状态。 7. **长度不小于k的公共子串的个数**: - PKU3415要求计算所有长度不小于k的公共...

    快速排序的基本算法和改进实现

    它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。...

    符号数据排序.pptx

    - **计数排序**:统计每个符号出现的次数,据此生成排序后的序列。 - **基于归并的排序算法**: - **归并排序**:不断地将数据划分为更小的子序列,直至每个子序列只有一个元素,再合并子序列。 - **自然排序**...

    个人针对学习几种排序算法的总结

    排序算法是计算机科学中的一项基础内容,它涉及到如何有效地对数据进行排序,以便于存储、检索和操作。根据给定文件的内容,以下是对学习的几种排序算法的详细知识点总结。 1. 冒泡排序(BubbleSort): 冒泡排序是...

    对象排序的并行化与分布式计算.pptx

    - **原理**:计算每个元素出现的次数,然后使用计数信息构建输出数组以获得排序后的结果。 - **应用场景**:适用于元素值范围较小的数据集。例如,在基因组学研究中对短序列进行排序时效果显著。 5. **并行桶排序...

    BWT完整算法

    - **文本压缩**:由于BWT能够将相似的字符集中到一起,因此它在数据压缩中表现出色,可以减少重复信息,提高压缩率。 - **字符串搜索**:BWT使得在大量文本中搜索特定模式变得高效,因为相似的模式在BWT字符串中...

    十大经典排序算法.pdf

    它通过统计每个元素出现的次数,然后计算出每个元素的正确位置。时间复杂度为O(n+k),其中k是整数的范围。 9. **桶排序**:桶排序将元素分配到有限数量的桶中,每个桶分别排序,然后组合所有桶的结果。如果数据均匀...

    易语言自动获取关键字

    4. **冒泡排序**:描述中提到的冒泡排序可能是指在获取关键字后,对它们按照出现次数进行排序的一种方式。冒泡排序是一种基础的排序算法,虽然效率相对较低,但对于小规模数据排序仍然适用。在易语言中,可以编写...

    2007机试1

    通过比较字符集中字符与文本中的字符,累加相应的计数。最后,程序输出每个字符及其出现次数。 这个算法的时间复杂度是O(m),其中m是第二个字符串的长度,因为需要遍历整个文本。空间复杂度是O(1),因为仅使用固定...

    迅雷网络公司 迅雷笔试题

    - 将哈希表中的键值对按照出现次数进行降序排序。 - 输出排序后的前三项。 - **优化技巧:** - 在构建哈希表时,可以利用`std::unordered_map`来提高查找效率。 - 排序时,可以考虑使用优先队列(最大堆)来...

    C#程序(补充完善版)

    【C#程序(补充完善版)】涉及到的知识点主要集中在几个方面:基本的排序算法、字符串操作以及链表操作。以下是对这些知识点的详细说明: 1. **排序算法**: - **冒泡排序**:冒泡排序是一种简单的排序算法,通过...

    基于Python和PyQt5库实现的面向英文文献的编辑与检索系统 毕业设计附代码.rar

    对于给定的文章片段(30&lt;单词数量),统计该片段中每个字符出现的次数,然后以它们作为权值,对每一个字符进行编码,编码完成后再对其编码进行译码。在 图形界面中演示该过程 对于给定的多篇文章构成的文档集中,...

    C语言程序设计习题试题(编程题).doc

    2. 这题要求使用插入排序算法对输入的十个整数进行排序。通过双层`for`循环,外部循环用于遍历数组,内部循环则用于每次将新输入的元素插入到已排序部分的正确位置。这是对排序算法的实践,插入排序是一种简单直观的...

    广联达最新招聘笔试题目

    这可能涉及到快速排序、归并排序等高效的排序算法,以及计数排序或哈希表来统计特定数字的出现次数。对于排序数组,可以在O(n)的时间复杂度内完成查找。 4. **软件测试部分**: - 计算器的测试流程和思路:包括...

    三级和二级南开上机100题

    通过遍历字符串,计算字符'1'出现的次数,来判断选票的有效性。 2. **数据排序**: - 题目5和6是关于整数数组的降序和升序排序。它们使用了冒泡排序的变体,通过对每个元素与后面的元素进行比较,根据条件交换位置...

    数据结构试验报告-文学研究报告助手.doc

    2. 对每行进行处理,分割单词并检查是否存在于待统计的词集中。 3. 使用`Aword`ADT的`WordCmp`方法对找到的单词进行排序。 4. 将排序后的单词存储到`OrderList`ADT中,同时记录每个单词的出现次数和行号。 5. 输出每...

    sql高级进阶

    - 按字符串中的数值排序:对数字字符串进行排序。 - 根据表中的行创建一个分隔列表:将行数据合并为一个逗号分隔的字符串。 - 提取第n个分隔的子串:使用数据库的字符串分割函数。 - 分解IP地址:将IP地址字符串...

Global site tag (gtag.js) - Google Analytics