网络代码处理输入分组用的是异步和中断驱动的方式。首先,一个设备中断引发接口层代码执行,然后它产生一个软中断
引发协议层代码执行。当内核完成这些级别的中断后,执行插口代码。当内核完成这些级别的中断后,执行插口代码。
在这里给每个硬件和软件中断分配一个优先级。如下图:
对于不同优先级,一个要关心的问题就是如何处理那些在不同级别的进程共享的数据结构。例如,当IP输入例程正在从它的
输入队...
分类:
其他好文 时间:
2014-04-29 13:48:22
阅读次数:
429
最短路问题是图论中最基础的问题,在面试题中出现的次数也很多,很多类似最少步数等问题都能转化到最短路问题,这篇文章介绍单源最短路问题的两种算法。单源最短路问题是固定一个起点,求它到其他所有点的最短路问题,如果只求两个固定点之间的最短路,看起来要简单很多,但其实复杂度是一样的,所以我们广泛的讨论单源最短路问题。...
分类:
其他好文 时间:
2014-04-29 13:46:22
阅读次数:
281
蚁群算法的第一个算法就是蚂蚁系统,而蚂蚁系统有三种基本模型分别是
蚁周模型、蚁密模型、蚁量模型。三种模型的实现大致相同,主要区别是在信息素
的更新方式上。在用蚂蚁系统解决T SP问题时,蚁量模型和蚁密模型是蚂蚁在构建
一条合法路径的过程中进行信息素的更新的,当蚂蚁走过一条边之后,就对该边进
行信息素的更新,即为局部更新方式。而蚁周模型是在所有蚂蚁都构建了一条合
法路径之后才对各边进行...
分类:
其他好文 时间:
2014-04-29 13:46:22
阅读次数:
349
前面的博客中我们讲到的堆的两种变体,二叉堆和二项堆,今天我们要讲的就是著名的斐波那契堆。二项堆和斐波那契堆对于search操作的支持均比较低效;可能花费一段时间才能找到关键字。为此,涉及给定元素的操作(如DECREASE-KEY和DELETE)均需要一个指针指向这个元素,并且指针作为输入的一部分。...
分类:
其他好文 时间:
2014-04-29 13:36:20
阅读次数:
331
在上一篇排序算法的文章中介绍了插入排序,分别为直接插入排序和希尔排序。今天我们继续来介绍其他的排序算法。
1、选择排序:简单选择排序
2、选择排序:堆排序...
分类:
其他好文 时间:
2014-04-29 13:36:20
阅读次数:
340
作者:disappearedgod
文章出处:http://blog.csdn.net/disappearedgod/article/details/24055547
时间:2014-4-18
前言
正文
1.3.1.1 定义及优势
1.3.1.1.1 定义
定义 一棵2-3查找树或为一棵空树,或由以下结点组成:
2-结点,含有一个键(及其对应的值)和两条链接,左链接指向的...
分类:
其他好文 时间:
2014-04-29 13:31:21
阅读次数:
359
相信学过数据结构的人都听说过后缀表达式,就是在学习栈的时候。相信大家也都用过计算器windows里面的calc。但是有没发现它只能单步计算,而不能一次计算一个表达式。后缀表达式就有了用武之地,可以一次性计算一整个个式子。科技要为生产服务,所以我就实际去做了一个依据后缀表达式的带有图形化界面的计算器。...
分类:
其他好文 时间:
2014-04-29 13:25:20
阅读次数:
283
gets()不检查缓冲区空间,多出来的字符会覆盖堆栈原先的内容。
fgets()的第二个参数说明最大读入的字符数。如果这个参数值为n,那么fgets()就会读取最多n-1个字符或读完一个换行符为止。两个条件满足任意一个结束。
fgets()读取到换行符,就会把它存到字符串里,而不是想gets()那样丢弃它。
fgets()的第三个参数说明读哪个文件。从键盘上读数据时,可以使用stdin(代表...
分类:
其他好文 时间:
2014-04-29 13:17:22
阅读次数:
337
队列只允许一端进行插入操作,另一端进行删除操作。队列是一种先进先出的线性表,简称FIFO,允许插入的一段为队尾,允许删除的一端为队头。
顺序队列
与栈不同的是,队列的出队元素在队头,那么队列没出去一个元素,后面的元素就要依次像前移动,这样他的时间复杂度就是O(n)。
考虑上面截图的流程感觉效率很低,起始我们的队列可以以另一种方式来处理,就是元素不懂,而队头的指...
分类:
其他好文 时间:
2014-04-29 13:14:20
阅读次数:
284
利用内存chunk充当数据buffer的vector的实现,和STL vector 有接口操作性能比较...
分类:
其他好文 时间:
2014-04-29 13:11:20
阅读次数:
318