自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

转载 c可变参数

前言:      本文在很大程度上改编自网友kevintz的“C语言中可变参数的用法”一文,在行文之前先向这位前辈表示真诚的敬意和感谢。 一、什么是可变参数         我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为:    int   printf(   const   char*   format,   ...);

2012-05-15 22:17:58 317

转载 MFC 进程间通信

进程间通信有四种方法1.剪贴板a.创建个ClipBoard的对话框应用程序,加两EditBox和两个Button发送接收。b.具体代码:发送端代码:if(OpenClipboard()){CString str;HANDLE hClip;char *pBuf;EmptyClipboard();GetDlgItemText(IDC_EDIT_SEND,st

2012-05-13 22:02:02 520

转载 VC++中进程间相互通信的十一种方法

进程通常被定义为一个正在运行的程序的实例,它由两个部分组成:  一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方  另一个是地址空间,它包含所有的可执行模块或DLL模块的代码和数据。它还包含动态分配的空间。如线程堆栈和堆分配空间。每个进程被赋予它自己的虚拟地址空间,当进程中的一个线程正在运行时,该线程可以访问只属于它的进程的内存。属于其它进程的

2012-05-13 22:00:20 404

原创 算法导论学习笔记(20)——最大流

一,概念1)流网络:简单有向图,且有两个特别的顶点(源点s,汇点t)2)流的边标识为f(u,v)/c(u,v),流量/容量3)流的三个性质:1>容量限制 对于所有边 流量2>反对称性 f(u,v)=-f(v,u)3>流守恒性 正向流与反响流之和为零4)割:流网络G=(V,E)的割(S,T)将顶点V划分为S和T=V-S两部分,定义割的容量为C(S)割这条线上S中顶点到T中顶点

2012-05-07 22:02:57 3376

原创 算法导论学习笔记(19)——每对顶点间的最短路径(基于Floyd_Warshall算法)

Floyd-Warshall算法的运行时间为Θ(V3),它同样允许存在负权边,但假设不存在负权回路。该算法考虑的最优子结构与上述描述类似,即最短路径的子路径是最短路径。但是,它对中间路径的范围加以限制,使其增长与最短路径的最大边数的增长同步。令dij(k)=为从顶点i到顶点j、且满足所有中间顶点属于集合{1,2,…,k}的一条最短路径的权值,定义递归解:如果k=0,dij(k)=wij;如果k≥1

2012-05-07 20:49:10 1368

原创 算法导论学习笔记(18)——单源最短路径(Dijkstra算法实现)

Dijkstra算法的基本思想是:设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径v,···vk,就将vk加入到集合S中,直到全部顶点都加入到S中,就结束了),第二组为其余未确定最短路径的顶点集合(有U表示),按最短路径长度的递增顺序依次把第二组的顶点加入到S中,在加入的过程中,总保持从源点v到S

2012-05-05 21:37:04 1102

原创 算法导论学习笔记(17)——最小生成树

给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树.求最小生成树的算法(1) 克鲁斯卡尔算法图的存贮结构采用边集数组,且权值相等的边在数组中排列次序可以是任意的.该方法对于边相对比较多的不是很实用,浪费时间.(2) 普里姆算法图的存贮结构采用邻接矩阵.此方法是按各个顶点连通的步骤进行,需要用一个顶点集合,开始为空集,以后将以连通的顶点陆续

2012-05-05 10:53:39 646

原创 算法导论学习笔记(16)——图的基本算法

一、图的表示:有两种方法:(1)邻接矩阵:在非稀疏图中,这种表示法简单高效。比如图有n个节点,矩阵大小就是NxN的M,M[i,j] 可以用来表示节点i到节点j的权等等。这种表示法使用起来相当的灵活,缺点是不管图的信息如何,其空间代价都是NxN的,开销较大。(2)邻接表:这是专门为稀疏图所准备的,也使我最喜欢的表示方法,因为我总感觉这种表达方式尊重了图的信息,比较有感觉。首先,可以用一个

2012-05-04 20:59:08 588

转载 算法导论学习笔记(15)——用于不相交集合的数据结构

用于不相交集合的数据结构总结:这一章讲了并查集的相关概念,以及主要的MAKE-SET, UNION, FIND-SET操作,并给出了并查集的链表表示和森林表示方式。1.    不相交集合上的操作不相交集合数据结构保持一组不相交的动态集合,每个集合通过一个代表来标识,代表即集合中的某个成员。一些操作:MAKE-SET(x): 建立一个新的集合,其唯一成员为x。UN

2012-05-04 14:51:45 1847

转载 算法导论学习笔记(14)——斐波那契堆

斐波那契堆同二项堆一样,也是一种可合并堆。斐波那契堆的优势是:不涉及删除元素的操作仅需要O(1)的平摊运行时间(关于平摊分析的知识建议看《算法导论》第17章)。和二项堆一样,斐波那契堆由一组树构成。这种堆松散地基于二项堆,说松散是因为:如果不对斐波那契堆做任何DECREASE-KEY 或 DELETE 操作,则堆中每棵树就和二项树一样;但是如果执行这两种操作,在一些状态下必须要破坏二项树的特征,比

2012-05-04 11:27:16 3928

原创 算法导论学习笔记(13)——二项堆

一颗二项堆由一组二项树组成,二项树Bk是一种递归定义的有序树,B[k]是由两棵B[k-1]二项树组成,其中一颗树是另外一颗树的子树。下面(b)是B0 - B4的二项树:(a)表示二项树Bk的递归定义,三角形表示有根的子树(c)以另一种方式来看二项树Bk显然二项树具有如下的性质:1. 对于树B[k]该树含有2^k个节点;2.  树的高度为k;3. 在深度为

2012-05-03 23:13:34 1057 1

转载 算法导论学习笔记(12)——B树

前言:        动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自然会提高查找效率。    但是咱们有面对这样一个实际问题:就是大规模数据

2012-05-02 23:28:24 794

原创 算法导论学习笔记(11)——贪心算法之哈夫曼树

详细的贪心算法讲解可参看http://www.cnblogs.com/chinazhangjie/archive/2010/11/23/1885330.html     贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他

2012-05-02 09:45:39 6443

转载 算法导论学习笔记(10)——动态规划之最优二叉查找树

问题描述(详见算法导论P212-P213)对于给定关键字序列,构造一颗最优的二叉查找树T,使得在T内的一次搜索的期望代价最小前提概念一颗最优二叉树不一定是一颗整体高度最小的树;也不一定总把具有最大概率的关键字作为根节点二叉查找树的子树必定包含连续范围内的关键字当一颗树成为一个节点的子树时,它的期望代价增加值为该树中所有概率的总和最优子结构设包含有序关键字

2012-05-01 23:11:14 2480 1

转载 算法导论学习笔记(9)——动态规划之最长公共子序列

【问题】 求两字符序列的最长公共字符子序列问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列。令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是X的子序列,存在X的一个严格递增下标序列,i1,…,ik-1>,使得对所有的j=0,1,…,k-1,有xij=yj。例如,X=“ABCBDAB”,

2012-05-01 22:21:51 1030

原创 算法导论学习笔记(8)——动态规划之矩阵链乘法

【问题描述】给定有n个连乘矩阵的维数,要求计算其采用最优计算次序时所用的乘法次数,即所要求计算的乘法次数最少。例如,给定三个连乘矩阵{A1,A2,A3}的维数分别是10*100,100*5和5*50,采用(A1A2)A3,乘法次数为10*100*5+10*5*50=7500次,而采用A1(A2A3),乘法次数为100*5*50+10*100*50=75000次乘法,显然,最好的次序是(A1A2

2012-05-01 22:17:05 1339 1

texturepacker309

图像处理软件,可以转换图片像素格式,如RGBA8888->RGBA4444

2014-08-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除