- 博客(27)
- 资源 (8)
- 收藏
- 关注
原创 几种查找算法
1.顺序查找 依次比较结构中的每个元素,这种查找方式最直接,也是最简单的了。 2.二分查找(折半查找) 简单的说就是每次比较的时候都和中间的元素进行比较!如下图: 代码: int BinarySearch(int a[],int dat,int len){ int start=0,end=len-1,mid;
2012-04-21 18:16:43 502
原创 几种查找算发
1.顺序查找 最简单的就是顺序查找了,就是对于给定的一个数据,一次查找结构(例如数组,链表等)中的数据直到找到为止! 2.二分查找(也叫折半查找) 首先这个方法得在一个已经排好序的结构中,每次查找时将要查找的元素和中间的元素进行比较,用下标进行比较,如下例: int BinarySearch(int a[],int dat,int len
2012-04-21 17:29:02 106
原创 排序算法二-堆,希尔,合并排序
总感觉有些知识点,要经过以后的多多实践才能真正的熟练运用,因为我感觉看了之后理解吧是问题,问题是每次理解玩了之后要自己去很快形成思路并写出来,还是有一定的难度,感觉得多多运用才是王道啊! 反正吧管怎么说先记录下自己的理解对于以后必定有用...^.^, 首先是堆排序算法: 先简单的根据自己的理解介绍下什么是堆排序,这里所谓的堆是指二叉树,也就是用一维数组来线性的表示二
2012-04-17 20:11:16 372
原创 排序算法之-冒泡-快速-选择
1.冒泡排序的思路较简单 二层循环,第一层循环表示遍历次数,每次都要遍历一遍,完成后得到一个最大值 进行第二层循环时由于第一层循环已经得到了一个最大值也就说已经排好序了,则第二层循环只需比较Num-i次了,i表示第一层循环当前遍历的位置,Num表示数据总数. 进行比较,并交换将大的数据放后面还是小的放后面,自主决定了。
2012-04-12 21:45:22 398
原创 图的两种遍历方式--深度与广度优先遍历
1.图的广度优先遍历 思路: 定义一个队列,用于保存依次访问与其构成边的顶点.队列是先进先出的可以达到顶点遍历的有序,例如如下图: 保存队列 然后依次循环,顺序的处理每一个顶点,输出顶点的要求是这两个顶点可以构成边。其没有被访问过即IsTrav==0; 定义队列:Queue Q;
2012-04-11 08:12:57 1660
原创 图的两种创建方式
1.邻接矩阵保存图 保存图的结构体:typedef struct{ //图的信息 char Vertex[VERTEX_MAX]; int Edges[VERTEX_MAX][VERTEX_MAX]; int isTrav[VERTEX_MAX]; int VertexNum; int EdgeNum; int Graphtype;}MatrixGraph;
2012-04-10 23:05:37 442
原创 保存图的两种方式
1.邻接矩阵保存图 保存图的结构体:typedef struct{ //图的信息 char Vertex[VERTEX_MAX]; int Edges[VERTEX_MAX][VERTEX_MAX]; int isTrav[VERTEX_MAX]; int VertexNum; int EdgeNum; int Graphtype;}MatrixGraph;
2012-04-10 21:48:18 185
原创 图的基本知识了解
由于基本的概念东西都是一样的,但是为了使得图的知识的完整性,还是 摘抄了本部分知识 详见::百度图定义二元组的定义 图G是一个有序二元组(V,E),其中V称为顶集,E称为边集。它们亦可写成V(G)和E(G)。 E的元素是一个二元组数对,用(x,y)表示,其中。三元组的定义 一个图(Graph),是指一个三元组(V,E,I),其中V称为
2012-04-10 20:33:43 402
原创 二叉树之四--赫夫曼二叉树编码运用
这一节讲述二叉树的运用用于通讯运用中的编码与解码,依然是参照的学习心得及自己的理解来阐述,如果对二叉树基本性质不了解的可以查看基本部分:二叉树基本了解 赫夫曼中的二叉树和我们普通的二叉树有点不同,不同点在于赫夫曼二叉树中没有普通二叉树的左右子节点,没有指针,但是取而代之是两个指示左右孩子的两个整型值left,right当然还增加了一个指示父节点的parent以便查找,另外一个全局的用于
2012-04-07 19:28:08 931
原创 二叉树之三--线索二叉树之代码实现
上篇刚写了个普通的二叉树,现在讨论线索二叉树了,相关代码下载下载代码 关于线索二叉树,自己在学习的时候,总是感觉到头晕,主要原因在于总是搞不清楚这个前驱和后继是怎么联系起来的,其实这个我是把事情想得有点复杂了,人家都是复杂事情简单化,而我倒成了简单事情复杂化了,汗! 现在总结下这个前驱和后继是怎么回事,其实首先要理解的就是,学习线索前我们要联系前面学习的几种遍历方式,因为他们是
2012-04-05 22:38:10 792
原创 二叉树之二--普通二叉树代码实现
话说吧,人有时候就是很笨,当然这里说我自己呢,呵呵,最近学数据结构学到了普通的二叉树,线索二叉树,还有赫夫曼二叉树,几乎是每一部分的知识看了三遍才基本能够清晰的知道其实现原来是什么,怎么来的,怎么去用!哎可能真的是笨,所以特作此笔记记录下来首先是普通二叉树关于普通二叉树的基本知识可见一位博主的文章理论知识讲的很详细,查看一下代码是这书上的大部分都相同,但是有少部分不同,主要是自己理解了之后慢慢敲上
2012-04-05 22:02:11 2112
原创 矩阵专题之二----稀疏矩阵的压缩存储
对于一般矩阵我们知道,矩阵中有很多的元素是非零的,所以无法避免的要耗费空间来存储了 但是对于一些特殊矩阵我们要尽量避免内存的浪费,例如接下来的稀疏矩阵! 以上的矩阵我们称为稀疏矩阵,因为矩阵中有很多的零元,如果我们可以避免0元的存储将节约大量的存储空间,尤其是对于更加庞大的矩阵
2012-04-04 17:58:36 1490
原创 矩阵专题之一----矩阵介绍
矩阵的概览: 矩阵分类: 1.零矩阵 解释: 矩阵中所有的元素都为零. 2.N阶方阵 解释:矩阵的行和列相等的矩阵. 3.对角矩阵 解释:矩阵中所有的元素除对角线的元素外都为零.
2012-04-03 22:16:49 859
原创 如何才能理解好递归
今天又写了个C++中关于字符串倒序输出的,要求用递归算法求解! 关于递归,以前也思考了很久自以为已经理解好了,但是今天做题还是磕磕碰碰,不能够快速的反应过来,所以觉着有必要好好总结下,写出自己认为的最好理解方式! 当然大家都知道,递归的本质和栈数据的存取很相似了,都是先进去,但是往往最后处理!再者对于递归函数的局部变量的存储是按照栈的方式去存的,对于每一层的递归函数
2012-04-02 19:25:59 7341 6
原创 小结下C++中静态函数与成员
#includeusing namespace std;class Point{public: Point(int x=0,int y=0):x(x),y(y) { count++; } Point(Point &p) { x=p.x; y=p.y; count++; } ~Point(){ count--;} int GetX(){ return x;}
2012-03-19 14:38:02 415
转载 二叉树之基础篇--基本性质
二叉树具有以下重要性质:性质1 二叉树第i层上的结点数目最多为2i-1(i≥1)。证明:用数学归纳法证明: 归纳基础:i=1时,有2i-1=20=1。因为第1层上只有一个根结点,所以命题成立。 归纳假设:假设对所有的j(1≤j命题成立,即第j层上至多有2j-1个结点,证明j=i时命题亦成立。 归纳步骤:根据归纳假设,第i-1层上至多有2i-2个结点。由于
2012-03-17 14:12:13 703
原创 算法--链表
链表分为多种! 顺序链表,单链表,循环链表,还有就是双向链表了。 一般感觉用得比较多的还是单链表.... 单链表与顺序链表的不同之处在于 1.单链表 可以动态的分配内存,动态存储,且一般来说插入与删除用到单链表,因为这样其算法时间复杂度会稍好,不会像顺序链表一样,还要不断的移动数据而耗费时间。 2.顺序链表,主要是用于固定长度的链表,并且可以指定查找到某个下标的元素
2012-03-16 13:20:57 317
原创 算法一--递归
关于递归算法的具体规则这里就插个百度链接:因为也很容易在网上找到的递归具体含义,供日后回顾用! #include#includeint main(int argc,char *argv[]){ void convertto(char *s,int integer,int b); char s[80]; int a,b,i; printf("输入要转换的整数!"); sc
2012-03-16 13:08:23 351
原创 北航1002-祭祀广场
#includeusing namespace std;int RetRes(int ,int ,int );int **p=NULL;int main(int argc,char* argv[]){ int i,j,res=0,res_l=0; int a,b; cin>>a>>b; p=new int*[a]; for(i=0;i<a;i++) p[i]=n
2012-03-16 12:59:22 5137
原创 北航1000(A+B)
初次写这中格式的程序,好纠结,不知道怎么入门了都!写这个程序的最大收获就是自己得要学会有条理的思考问题了.....#include#include//结构体保存数据与结果struct Plus{int a,b;int res;struct Plus *next;};int main(int argc,char* argv[]){ int nu
2012-03-16 12:51:32 492
原创 针对最近大家写的俄罗斯方块代码,我也练了下,效果不理想--有感
话说,看着大家都把写俄罗斯方块拿来练手了,我这个大二的菜鸟也不淡定了,于是花了一天的时间用VC写了俄罗斯方块的大部分主体代码。经过一个星期的时间(加上上课时间了)完善修改,虽然一些基本功能能够实现,但是仍然有bug这个bug主要是某个方块的越界,以及方块接触底部时的出乎意料的显示在界面上方了,这可能是细节没把握的好,反正一个字--晕啊!希望各位高手可以提出些改进方案! 发这篇博客主要是想记
2012-03-09 19:21:14 810
原创 自制日志小软件EveryDR
下载源文件 大概经历了半个月的时间,经过各种资料查找以及同行帮助终于完成了一个,自制的简易日志小软件。 该软件名位EveryDR,意思是Every Day Record 的意思。 此间经历的最头疼的一件事就是在响应WM_PAINT消息时,函数中用了CDC 来获取设备上下文,正因为此而纠结了很长一段时间,实际上再响应该消息时应该选择CPaintDC 以前我也经
2012-02-12 18:45:08 315
原创 自制日志小软件EveryDR
下载源文件 大概经历了半个月的时间,经过各种资料查找以及同行帮助终于完成了一个,自制的简易日志小软件。 该软件名位EveryDR,意思是Every Day Record 的意思。 此间经历的最头疼的一件事就是在响应WM_PAINT消息时,函数中用了CDC 来获取设备上下文,正因为此而纠结了很长一段时间,实际上再响应该消息时应该选择CPaintDC 以前我也经
2012-02-12 18:07:43 94
原创 关于自绘标题栏及边框的实现
函数时重载非客户区消息WM_NCPAINTCDC *pDC=GetWindowDC(); //获取整个窗口的DCCDC *dcmem=new CDC; //这里还真得用new在堆上分配CBitmap *m_hBitmap=new CBitmap; //堆上分配CRect rt;GetWindowRect(&rt);m_hBitmap->LoadBitmap(IDB_BITM
2012-02-10 22:12:51 942
原创 循环内的自加要注意
#includeint main(int argc,char* argv[]){ int n=9; //定义整形变量为9 if(n++<10) printf("%d\n",n++); else printf("%
2011-12-28 11:28:33 498
原创 VC对话框设置背景位图三种方法
方法一:载入位图 先在资源中导入一幅位图,在对话框中添加一个picture控件,右击选择属性在类型中选择bitmap,再选择你导入的位图的ID号就行了,前提是你的位图尺穿足够大.可以填满你的对话框方法二: 重载OnEraseBkgnd()--WM_ERASEBKGND(INFO-WINDOW中设置)BOOL CBkcolor2Dlg::OnEraseBkgnd(CDC* pD
2011-12-28 11:01:09 1615
俄罗斯方块的主体函数
2012-03-09
自制简易日志软件
2012-02-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人