代码改变世界

随笔分类 -  算法

第3章 线性表的单链表c#实现---《大话数据结构》读书笔记

2012-01-11 17:02 by 海不是蓝, 1453 阅读, 收藏, 编辑
摘要: 线性表的链式存储结构(单链表)定义为了表示每个数据元素ai与其直接后继数据元素ai+1之间的逻辑关系,对数据元素ai来说,除了存储其本身的信息之外,还需要存储一个指示其直接后继的信息(即直接后继的存储位置)。把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称作指针链,这两部分信息组成数据元素ai的存储映象,称为结点(Node)。n个结点(ai的存储映像)链结成为一个链表,即为线性表(ai,a2,…,an)的链式存储结构,因为此链表的每一个结点中只包含一个指针域,所以叫做单链表。链表中第一个结点的存储位置叫做头指针。单链表的读取从头开始找,当i=1的时候,就 阅读全文

第3章 线性表的顺序存储c#实现---《大话数据结构》读书笔记

2012-01-04 23:22 by 海不是蓝, 1083 阅读, 收藏, 编辑
摘要: 线性表的定义线性表(List):零个或多个数据元素的有限序对。强调:1. 线性表是有限的。2. 元素之间是有顺序的。3. 若存在多个元素,则第一个元素无前驱,最后一个元素无后继。4. 其他每个元素都有且只有一个前驱和后继。数学语言定义若线性表记为(a1,…ai-1,ai,ai+1,…,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。当i=1,2,…,n-1时,ai有且仅有一个直接后继,当i=2,3,…n时,ai有且仅有一个直接前驱。线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。线性表的顺序存储结 阅读全文

第2章 函数的渐近增长---《大话数据结构》读书笔记

2012-01-01 17:59 by 海不是蓝, 1210 阅读, 收藏, 编辑
摘要: 判断算法A和B哪个更好假设2个算法的输入规模都是n算法A要做2n+3次操作算法B要做3n+1次操作次数算法A(2n+3)算法A’(2n)算法B(3n+1)算法B’(3n)n=15243n=27476n=396109n=1023203130n=100203200301300分析:当n=1时,算法A的效率不如算法B。而当n=2时,两者效率相同;当n>2时,算法A就开始优于算法B了。随着n的增长,算法A比算法B越来越好(执行的次数比B要少)。结论:算法A总体上好过算法B。定义:输入规模n在没有限制的情况下,只要超过一个数值N,这个函数就总是大于另外一个函数,我们称函数是渐进增长的。函数的渐近增 阅读全文

第2章 算法效率的度量方法---《大话数据结构》读书笔记

2012-01-01 17:55 by 海不是蓝, 335 阅读, 收藏, 编辑
摘要: 一个程序的运行时间,依赖于算法的好坏和问题的输入规模。思维的问题输入规模是指输入量的多少。2种求和算法第一种:Int32sum=0,n=100;//执行了1次for(Int32i=1;i<=n;i++)//执行了n+1次{sum=sum+i;//执行了n次}Console.WriteLine("sum={0}",sum);//执行了1次第二种:Int32sum=0,n=100;//执行了1次sum=(1+n)*n/2;//执行了1次Console.WriteLine("sum={0}",sum);//执行了1次第一种算法执行次数:1+(n+1)+n 阅读全文

第2章 算法1---《大话数据结构》读书笔记

2012-01-01 10:12 by 海不是蓝, 295 阅读, 收藏, 编辑
摘要: 高斯算法从1加到100;Int32sum=0,n=100;sum=(1+n)*n/2;Console.WriteLine("sum={0}",sum);相当于求等差数列算法算法定义算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列。并且每条指令表示一个或多个操作。算法的特性1.输入输出,算法具有0个或多个输入,算法至少有一个或多个输出。2.有穷性,算法在执行有限的步骤后,自动结束而不是出现无线循环,并且每一个步骤在可接受的时间内完成。3.确定性,算法的每一步骤都具有确定的含义,不会出现二定义。4.可行性,算法的每一步都必须是可行的,也就是说,每一步都能够通过执 阅读全文
点击右上角即可分享
微信分享提示