【算法】
文章平均质量分 79
zp032420
这个作者很懒,什么都没留下…
展开
-
算法一--递归
关于递归算法的具体规则这里就插个百度链接:因为也很容易在网上找到的递归具体含义,供日后回顾用! #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 · 364 阅读 · 0 评论 -
排序算法二-堆,希尔,合并排序
总感觉有些知识点,要经过以后的多多实践才能真正的熟练运用,因为我感觉看了之后理解吧是问题,问题是每次理解玩了之后要自己去很快形成思路并写出来,还是有一定的难度,感觉得多多运用才是王道啊! 反正吧管怎么说先记录下自己的理解对于以后必定有用...^.^, 首先是堆排序算法: 先简单的根据自己的理解介绍下什么是堆排序,这里所谓的堆是指二叉树,也就是用一维数组来线性的表示二原创 2012-04-17 20:11:16 · 384 阅读 · 0 评论 -
排序算法之-冒泡-快速-选择
1.冒泡排序的思路较简单 二层循环,第一层循环表示遍历次数,每次都要遍历一遍,完成后得到一个最大值 进行第二层循环时由于第一层循环已经得到了一个最大值也就说已经排好序了,则第二层循环只需比较Num-i次了,i表示第一层循环当前遍历的位置,Num表示数据总数. 进行比较,并交换将大的数据放后面还是小的放后面,自主决定了。原创 2012-04-12 21:45:22 · 408 阅读 · 0 评论 -
图的两种遍历方式--深度与广度优先遍历
1.图的广度优先遍历 思路: 定义一个队列,用于保存依次访问与其构成边的顶点.队列是先进先出的可以达到顶点遍历的有序,例如如下图: 保存队列 然后依次循环,顺序的处理每一个顶点,输出顶点的要求是这两个顶点可以构成边。其没有被访问过即IsTrav==0; 定义队列:Queue Q;原创 2012-04-11 08:12:57 · 1690 阅读 · 0 评论 -
图的两种创建方式
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 · 456 阅读 · 0 评论 -
图的基本知识了解
由于基本的概念东西都是一样的,但是为了使得图的知识的完整性,还是 摘抄了本部分知识 详见::百度图定义二元组的定义 图G是一个有序二元组(V,E),其中V称为顶集,E称为边集。它们亦可写成V(G)和E(G)。 E的元素是一个二元组数对,用(x,y)表示,其中。三元组的定义 一个图(Graph),是指一个三元组(V,E,I),其中V称为原创 2012-04-10 20:33:43 · 433 阅读 · 0 评论 -
二叉树之四--赫夫曼二叉树编码运用
这一节讲述二叉树的运用用于通讯运用中的编码与解码,依然是参照的学习心得及自己的理解来阐述,如果对二叉树基本性质不了解的可以查看基本部分:二叉树基本了解 赫夫曼中的二叉树和我们普通的二叉树有点不同,不同点在于赫夫曼二叉树中没有普通二叉树的左右子节点,没有指针,但是取而代之是两个指示左右孩子的两个整型值left,right当然还增加了一个指示父节点的parent以便查找,另外一个全局的用于原创 2012-04-07 19:28:08 · 941 阅读 · 0 评论 -
二叉树之三--线索二叉树之代码实现
上篇刚写了个普通的二叉树,现在讨论线索二叉树了,相关代码下载下载代码 关于线索二叉树,自己在学习的时候,总是感觉到头晕,主要原因在于总是搞不清楚这个前驱和后继是怎么联系起来的,其实这个我是把事情想得有点复杂了,人家都是复杂事情简单化,而我倒成了简单事情复杂化了,汗! 现在总结下这个前驱和后继是怎么回事,其实首先要理解的就是,学习线索前我们要联系前面学习的几种遍历方式,因为他们是原创 2012-04-05 22:38:10 · 802 阅读 · 0 评论 -
二叉树之二--普通二叉树代码实现
话说吧,人有时候就是很笨,当然这里说我自己呢,呵呵,最近学数据结构学到了普通的二叉树,线索二叉树,还有赫夫曼二叉树,几乎是每一部分的知识看了三遍才基本能够清晰的知道其实现原来是什么,怎么来的,怎么去用!哎可能真的是笨,所以特作此笔记记录下来首先是普通二叉树关于普通二叉树的基本知识可见一位博主的文章理论知识讲的很详细,查看一下代码是这书上的大部分都相同,但是有少部分不同,主要是自己理解了之后慢慢敲上原创 2012-04-05 22:02:11 · 2142 阅读 · 0 评论 -
二叉树之基础篇--基本性质
二叉树具有以下重要性质:性质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 · 720 阅读 · 0 评论 -
算法--链表
链表分为多种! 顺序链表,单链表,循环链表,还有就是双向链表了。 一般感觉用得比较多的还是单链表.... 单链表与顺序链表的不同之处在于 1.单链表 可以动态的分配内存,动态存储,且一般来说插入与删除用到单链表,因为这样其算法时间复杂度会稍好,不会像顺序链表一样,还要不断的移动数据而耗费时间。 2.顺序链表,主要是用于固定长度的链表,并且可以指定查找到某个下标的元素原创 2012-03-16 13:20:57 · 330 阅读 · 0 评论 -
几种查找算法
1.顺序查找 依次比较结构中的每个元素,这种查找方式最直接,也是最简单的了。 2.二分查找(折半查找) 简单的说就是每次比较的时候都和中间的元素进行比较!如下图: 代码: int BinarySearch(int a[],int dat,int len){ int start=0,end=len-1,mid;原创 2012-04-21 18:16:43 · 518 阅读 · 0 评论