- 博客(4)
- 资源 (9)
- 收藏
- 关注
原创 堆排序
堆数据结构是一个完全二叉树,父结点值都大于子结点值(都小于子结点值)。 用数组表示堆(0,...,size-1),根节点的下标为0,对于任意一个结点i,其左子结点为2*i+1, 右子结点为2*i+2。 堆中最后一个非叶子结点的下标为size/2-1。 //例程中是建一个大头堆 template void adjustHeap(T data[], int start, int end)
2016-05-30 11:23:10 288
原创 字典(trie)树的应用与实现
字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 常见的可以使用字典树解决的问题举例: 1、已知N个单词,对于每一个单词,判断它有没有出现过,如果出现了,求第一次出现在第
2016-05-26 22:31:37 484
原创 最短摘要生成
《编程之美》中对最短摘要生成问题的描述不是很清晰,事实上这个问题可以抽象成已知一个长字符串str和一个字符串数组strs,希望在str中找到一个包含字符串数组中的所有元素的最短子串。当然,这个问题可以更加简化为已知两个字符串src和obj,在src中找出包含obj中所有字符的最短子串。这个问题可以分成2个子过程: 步骤1:初始化,定义两个指针pBegin和pEnd指向src的首部,pEnd向后移
2016-05-18 14:12:41 431
原创 子集问题一网打尽
问题一:假设一个整数集合中不包含重复元素,求这个集合的所有子集(包括空集和本身) 一、子集就是在当前集合中选择N(N>=0)个元素,重新构成的另一个集合。那么对于当前元素我都可以选或者不选,重复这个子过程,那么子集便选择好了,很容易想到递归。
2016-05-16 19:24:45 656
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人