
编程珠饥
文章平均质量分 73
qyxqyxqyx
每天一个算法每天一个模式
展开
-
统计单词出现的频度
对于一些单词,如"aaa aa b aa bbb aaa",统计各个单词出现的频度。资料出处:编程珠饥 15.1方法一:用标准库的map。map m;对于string s;++m[s];即可统计字符串的个数,因为m[s],如果s存在,则自增,如果s不存在,则m[s]会创建,并初始化为int()即是0,并自增。由于map使用的平衡树,对n个单词,搜索的时间复杂度为n*log(n)原创 2013-05-13 22:29:08 · 1326 阅读 · 2 评论 -
从n中取出m个不重复的数
方法1:从n个中取m个,当前这个数被取出的概率为n/m,即if(rand() % n void genKnuth(unsigned int n , unsigned int m){ int remain = n; int unselect = m; for (int i = 0;i<n;++i) { if (rand()%remain < unselect) {原创 2013-07-29 16:47:51 · 1523 阅读 · 0 评论 -
STL中的优先级队列(priority_queue)的自己实现priqueue
这篇文章主要介绍堆(最大堆和最小堆),以及一些系统对一些任务,比如线程,进程做调度的时候,所采用的优先级队列。主要思想就是,做一个最大堆(任务的权重最大的在顶端),把顶端的任务取出,重新做一个堆,处理该任务。// 优先级队列.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace st原创 2013-08-29 10:48:14 · 1091 阅读 · 0 评论 -
变位词程序
如果两个单词,他们的字母组成一样而字母位置有区别,那么就称这两个单词为变位词。如 pans 和 span , tops 和 stop。所有的变位词,对他们按字母顺序排序,得到相同的字符串(这个字符串成为该单词的签名)。把这个字符串作为这个单词的排序标准,排序完之后,相同签名的单词是变位词,将他们输出。sign.exe 读入每个单词,为每个单词生成签名#include #include原创 2013-08-30 16:42:52 · 1034 阅读 · 0 评论