摘要:
基本概念 ²堆可以被视为一颗完全二叉树,树的每一层都是填满的,最后一层可能除外(最后一层从一个结点的左子树开始填)。²二叉堆有最大堆和最小堆两种。在最大堆中,除根结点外,每个结点的值必须小于或等于其父结点的值。²结点在堆中的高度定义为从该结点到叶子的最长简单下降路径上边的数目。堆得高度则为树根的高度。含有n个元素的堆的高度是lg n。²堆结构上的一些基本操作的运行时间至多与堆的高度成正比,为O(lg n)。²在高度为h的堆中,最多和最少的元素个数分别是2h+1-1和2h。 (这个高度的计数似乎和二叉树里高度不同,+1层)堆的组织形式堆能够以数组 阅读全文
摘要:
今天终于想起用古老的VC6.0看看自己3年前的程序,打开VC++6.0却遇到两个问题:1.文件->打开选项不能用,点击立即崩溃2.打开工程后资源文件无法打开,报错为:致命错误RC1015:无法打开包含文件afxres.h解决这两个问题的方法:1.网上有的说是和Office2007冲突,但是我的不是。我只是把MFC中的lib路径加了进来,打开就可以用了。不知道我这是不是正解。上面不是正解……我卸载了可能是与其冲突的Microsoft Office里的visio 2007,就可以正常打开文件了。 2.从安装的地方查找找到了一个老版本的afxres.h,放到了F:\Program Files\ 阅读全文
摘要:
第一次玩python,真的发现它在文本处理方面太太太强大了。forlineinopen("f:/file.txt"):forwordinline.split():ifword.endswith('ing'):printword 阅读全文
摘要:
一般来说,tcp正常关闭需要四个包。比如a和b关闭连接,a先 给b发一个fin,b会进行确认ack,然后b也会发出fin,当a接受到这个fin,并发出最后一个ack后,就会处于time_wait状态。这个时 间长短跟操作系统有关,一般会在1-4分钟,也就是两倍的数据包(2msl)最大生存时间。TCP主动关闭方采用TIME_WAIT主要是为了实现终止 TCP全双工连接的可靠性及允许老的重复分节在网络中消逝,等过了2msl(大约1~4分钟)后TIME_WAIT就会消失。TIME_WAIT状态的目 的是为了防止最后a发出的ack丢失,让b处于LAST_ACK超时重发FIN。 所以说,主动... 阅读全文
摘要:
键树又称为数字查找树(Digital Search Tree)或Trie树(trie为retrieve中间4个字符),其结构受启发于一部大型字典的“书边标目”。字典中标出首字母是 A,B,C,....Z的单词所在页,再对各部分标出第二字母为A,B,C,...Z的单词所在的页, ....等等。1:键树的定义 键树是一种特殊的查找树,它的某个节点不是包含一个或多个关键字,而是只包含组成关键字的一部分(字符或数字),比如:如果关键字是数值,则节点中只包含一个数位;如果关键字是单词,则节点中只包含一个字母字符。 2:键树的存储 键树的存储通常有两种方式: (1)双链... 阅读全文
摘要:
pasting2010年的会议时间表:(贴在这里只是为了了解大概情况) BIOSTEC'10 09.09.04 09.10.07 10.1.20-23 Valencia, Spain INSTICC-selected for Springer EI-Awaiting confirmation IJBEST-Int. Conf.Bio-inspired Systems and Signal Processing CVPR’10 09.11.19 10.02.05 10.6.13-18 San Francisco,USA IEEE EI IEEE Conf. Computer Vision 阅读全文
摘要:
先上链接:1.http://blog.csdn.net/super_chris/archive/2009/09/22/4581900.aspx 这一篇讲得很细致。 2.http://blog.csdn.net/made_in_chn/archive/2010/04/12/5473871.aspx 大家可以看看文章里的图,注意那是最小堆实现的图。 3.http://blog.csdn.net/midgard/archive/2009/04/14/4070074.aspx 同样讲的很细致的一篇。 4.http://student.zjzk.cn/course_ware/data_struc... 阅读全文
摘要:
堆,是一个很有意思的数据结构。逻辑结构是树,一般为二叉树,每个节点的值都大于(小于)其子树中的任意节点。也就是说,使用堆结构的数组 中,元素 是部分有序的。而正是这个特点,使得在堆上,得到最大值(最小值)的时间复杂度为O(1),移除最大值(最小值)、插入元素、改变元素值(或者是删除位置 已知的元素)的时间复杂度为O(lgn)。另外,用堆结构的排序是一种原地的、时间复杂度为O(nlgn)的排序算法。 可以参见动画演示:演示 在优先级队列前先说一下堆排序。 堆排序和归并排序都是时间复杂度为O(nlgn)的排序算法,不同的是,归并排序不是原地排序,它需要额外的n的空间;而堆排序是在原数组中进行的。. 阅读全文
摘要:
分析:设R= {r1,r2,r3,……,rn}是要进行排列的n个元素,Ri=R-{ri}。集合X中的元素的全排列记为perm(X).(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀ri得到的排列,R的全排列可归纳定义如下:当n=1,perm(R) = (r) ,其中r是集合R中唯一的元素。当n>1,perm(R)由(r1)perm(R1),(r2)perm(R2),……,(rn)perm(Rn)构成。#include<iostream>usingnamespacestd;voidswap(inta[],inti,intj){inttemp=a[i];a[ 阅读全文
摘要:
快速排序(QuickSort) 1、算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 (1) 分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。 (2)快速排序的基本思想 设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为: ①分解: 在R[low..high]中任选一 个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个 阅读全文