数据结构与算法
文章平均质量分 77
caigen1988
闻之不若见之,见之不若知之,知之不若行之
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
红黑树插入操作超详解
说明:1. 下述图片多参照网上资源(July红黑树)或者电子书资源(STL源码剖析)等 2. 个人感觉STL中思路以及实现方式比其他版本都易懂,建议大家好好琢磨参考: 1.STL源码剖析 2. http://www.cnblogs.com/abatei/archive/2008/12/17/1356565.html原创 2012-04-30 18:35:08 · 5655 阅读 · 0 评论 -
利用位图方法求字符串的组合(类似于位运算模拟加法)
题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。 解析:我们可以通过位数组来实现打印所有组合,这类似于用字符串模拟加法操作一样。不过用字符串模拟加法操作是逢10进1,用位模拟是逢2进1。 以abc为例:初始化位bitset 模拟每次加1它的变化为为 000 ---001 ---010 -- 011 ---原创 2012-08-02 10:13:45 · 1712 阅读 · 0 评论 -
倒排索引构建算法SPIMI(已实现,修订版)
信息检索导论中提到的倒排索引构建方法: 内存式单遍扫描索引构建方法(SPIMI : Single-pass in-memeory indexing): 思想:将一个文档集分割成几个大小相等的部分,参考标准就是分成的每个块可以一次性的装入内存 将处理每个块产生的词典写入磁盘,对于下一个块则重原创 2012-07-04 15:05:42 · 15454 阅读 · 1 评论 -
笔试面试中C/C++重要知识点整理(不定期更新)
1. C和C++语言中的优先级规则C语言中语言声明的优先级规则如下(以后分析的基础):A 声明从它的第一个名字开始读取,然后按照优先级顺序依次读取B 优先级从高到低依次是 B. 1 声明中被括号括起来的那部分 B. 2 后缀操作符: 括号()表示这是一个函数原创 2012-05-03 21:38:36 · 3694 阅读 · 0 评论 -
C/C++程序的内存布局---来自unix环境高级编程
1,正文段。这是由C P U执行的机器指令部分。通常,正文段是可共享的,所以即使执行的程序(如文本编辑程序、C编译程序、s h e l l等)在存储器中也只需有一个副本,另外,正文段常常是只读的,以防止程序由于意外事故而修改其自身的指令。 2,初始化数据段(data段).通常将此段称为数据段,它包含了程序中需赋初值的变量。例如, C程序中任何函数之外的说明:int maxcount = 99原创 2012-07-11 16:52:51 · 1608 阅读 · 0 评论 -
归并排序&&数组中逆序对问题
题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如在数组{7,5,6,4}中,一共存在5个逆序对,分别是{7,5}、{7,6}、{7,4}、{5,4}、{6,4} 解析:我们可以利用归并排序的过程中统计出逆序对的个数,算法时间复杂度为O(nlogn) 归并排序实现代码:#include usi原创 2012-08-09 15:30:16 · 753 阅读 · 0 评论 -
随机数生成问题分类以及题目汇总
最近在看关于随机数的生成问题。计算机程序设计艺术(第二卷第三章)以及编程珠玑(第12章)上都有讨论。就结合这两本书总结下。这里主要讲三个算法分别是1.选择抽样算法2.水库抽样算法3.洗牌算法1. 选择抽样算法:问题描述:从含有N个记录的一个文件中等概率的随机选取n个记录。思路:如第一个记录以n/N的概率被选中,果我们已经在前t个记录中选择了m个项目,则对第t+1个记原创 2012-06-28 19:36:50 · 2259 阅读 · 0 评论 -
一致性哈希算法(用于解决服务器均衡问题)
tencent2012 笔试题附加题 问题描述: 例如手机朋友网有n个服务器,为了方便用户的访问会在服务器上缓存数据,因此用户每次访问的时候最好能保持同一台服务器。已有的做法是根据ServerIPIndex[QQNUM%n]得到请求的服务器,这种方法很方便将用户分到不同的服务器上去。但是如果一台服务器死掉了,那么n就变为了n-1,那么ServerIPIndex[QQNUM%n]与S转载 2012-07-02 15:35:11 · 29745 阅读 · 3 评论 -
虚函数机制理解
再次翻阅深度探索C++对象模型,算是对虚函数机制又多了一层理解了。以例子说明class ZooAnimal { public: ZooAnimal(); virtual ~ZooAnimal(); virtual void animate(); virtual void draw(); //原创 2012-07-05 10:46:29 · 801 阅读 · 0 评论 -
堆与优先队列详解
说明: 1 . 根据看STL源码剖析与张铭的数据结构而总结。 2. 本人比较懒,图有的是自己画的有的是来自上面资源,算法实现直接copy的张铭数据结构中代码 堆是一个满足如下性质的完全二叉树:树中任意一个非叶结点的关键码均不大于(或者不小于)其左右孩子(若存在)结点的关键码。堆和二叉搜索树的区别是堆不像二叉搜索树一样实现了关键码的完全排序(中序周游二叉搜索原创 2012-05-01 17:14:58 · 2137 阅读 · 0 评论 -
链表问题及解题思路
常见问题如下:1.求链表中倒数第K个节点2.判断链表是否存在环3.判断存在环的链表中环的长度4.找到存在环的链表中环的入口5.判断两个链表是否相交6.如果两个链表相交,返回相交的第一个节点7.链表指针反转8. 求无环链表的中间结点下面将对这些问题一一解答。 问题1:求链表中倒数第K个节点解题思路:定义两个指针p1,p2,开始都指向链表头位原创 2012-06-25 16:31:00 · 1168 阅读 · 1 评论
分享