摘要:
1、数组的声明要指出:存储类型,数组名,数组大小2、没有引用数组,因为引用已经初始化不能在改变,但是可以有数组引用,即数组的引用,可以用于函数实参传递。3、关于数组的初始化,若不显式提供元素,对于内置类型数组,在函数体外元素被初始化为0,而在函数体内则不被初始化。对于非内置类型,则不管在哪里定义,都... 阅读全文
摘要:
C++中所有的容器:● 标准STL序列容器:vector、string、deque和list。● 标准STL关联容器:set、multiset、map和multimap。● 非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一个重型字符串。(“绳子(rope)”是重型的“... 阅读全文
摘要:
通常我们在命令行使用GCC对程序进行编译,如果对于单个或者几个文件时比较方便的,但当工程中的文件逐渐增多甚至变得十分庞大的时候,使用GCC显然力不从心,不好管理。因此我们有必要编写一个Makefile来对工程进行管理。就以下工程目录进行学习 阅读全文
摘要:
数据结构部分:1、数组和链表的区别。(很简单,但是很常考,记得要回答全面)C++语言中可以用数组处理一组数据类型相同的数据,但不允许动态定义数组的大小,即在使用数组之前必须确定数组的大小。而在实际应用中,用户使用数组之前无法确定数组的大小,只能够将数组定义成足够大小,这样数组的空间可能不被使用,从而... 阅读全文
摘要:
1、建初始堆(以大顶堆为例),这一步骤把初始序列建成了一个满足大顶堆性质的序列,且每棵子树都满足。这个时候堆顶是本序列中最大的元素,因此将最后一个元素和堆顶元素调换,把最大值放到最终的位置上。建好了初始堆,就保留了排序时候的比较结果,后面的调整都可以再此基础上进行,加快排序效率。
2、由于每次讲堆顶元素和最后一个对调,破坏了堆的性质,因此要从新向下调整,建立大顶堆(这里在初始堆的基础上,只要将堆顶元素调到合适位置即可)。
3、调整完了之后,又将堆顶元素与未序区间的最后一个元素对调。
4、重复2,3直到堆中剩余一个元素。 阅读全文
摘要:
假设我们已经知道快速排序的算法框架时,我们已经可以从宏观地去掌握快速排序算法的思想。但是快速排序算法的关键还是在于划分操纵,同时快速排序的性能主要取决于划分操作的好坏。快速排序分治partition过程有两种方法: 1)两个下标分别从首、尾向中间扫描的方法 2)两个指针索引一前一后逐步向后扫... 阅读全文
摘要:
英文使用手册原汁原味,一手资料。NAME timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via file descriptorsSYNOPSIS1 #include 2 3 int timer... 阅读全文
摘要:
首先感谢作者yanyiwu贡献的开源项目https://github.com/yanyiwu/simhash。在做项 目过程中,翻了一遍《这就是搜索引擎 核心技术详解》这本书的查重算法,在众多的算法中,我选择了simhash。这个算法的魅力在于,它把文本内容的相似性,转换为哈希值的相似性,很好理 解... 阅读全文
摘要:
内存映射 mmap
内存映射mmap函数的作用是建立一段可以被两个或者多个程度读写的内存段,一个程序对他进行任何修改,对其它程序可见。同样,这个功能可以用在对文件的处理上,mmap函数创建一个指向一个内存区域的指针,该内存区域与可以通过一个打开的文件描述符访问的文件的内容相关联。 阅读全文
摘要:
Hiredis客户端下载地址:https://github.com/antirez/hiredis/zipball/masterHiredis安装步骤:tar zxvf antirez-hiredis-v0.10.1-0-g3cc6a7f.zipcd antirez-hiredis-3cc6a7fm... 阅读全文
摘要:
.tar解包:tar xvf FileName.tar 或 tar zxvf FilenName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzip FileName.gz解压2:gzip -d... 阅读全文
摘要:
A)编译安装makemake install (/usr/local)make install PREFIX=$HOME/progs(可以自由指定安装路径)B)同步的API接口redisContext *redisConnect(const char *ip, int port);void *red... 阅读全文
摘要:
一直找不到关于C/C++连接Mysql数据库的详细api书籍和网站,刷了下网页,找到一篇Linux 下C/C++连接数据库的博客,留着以后自己用。 首先需要编译、安装MySQL,安装完成后,将MySQL目录中的lib目录添加到环境变量中。新建C/C工程,把$MYSQL_ROOT/include... 阅读全文
摘要:
什么是缓存? 在搜索领域中,所谓缓存,就是在高速内存硬件设备上为搜索引擎开辟一块存储区,来存储常见的用户查询及其结果,并采用一定的管理策略来维护缓存区内的数据。当搜索引擎再次接收到用户的查询请求时,首先在缓存系统中查找,如果能够在缓存中找到,则直接返回搜索结果;否则采取正常的搜索流程来返回搜索结果... 阅读全文
摘要:
1、算法思想
快速排序是一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。
(1) 分治法的基本思想
分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。
(2)快速排序的基本思想
设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为:
①分解: 在R[low..high]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个较小的子区间R[low..pivotpos-1)和R[pivotpos+1..high],并使左边子区间中所有记录的关键字均小于等于基准记录(不妨记为pivot)的关键字pivot.key,右边的子区间中所有记录的关键字均大于等于pivot.key,而基准记录pivot则位于正确的位置(pivotpos)上,它无须参加后续的排序。 阅读全文