- 0
- 0
- 约5.85千字
- 约 32页
- 2018-02-06 发布于河南
- 举报
第1.2章数据结构——算法及相关知识
第一篇 数据结构 第2章 算法及相关知识 章节内容 2.1 算法 算法的定义及其特性 算法(Algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。作为算法应具有下述的五个重要特性: 1、有穷性。一个算法必须在执行有穷步后结束,且每一步都能在有限的时间内完成。 2、确定性。算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。并且,在任何条件下,算法只有惟一的一条执行路径,即对于相同的输入只能得到相同的输出。 3、 可行性。一个算法必须是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。 4、 输入。一个算法应该有零个或多个输入。 5、 输出。一个算法应该有一个或多个输出。 算法的评价 通常设计一个“好”的算法应考虑达到以下目标: 1、正确性(correctness):大体可分为四个层次:a.不含语法错误;b.能够得出满足要求的结果;c.对典型、苛刻和带有刁难性的输入能得出满足要求的结果;d.对于一切合法的输入都能得到满足要求的结果。 2、可读性(readability):便于人的阅读与交流。 3、健壮性(robustness):对输入的非法数据,应能做出反应和处理。 4、效率与低存储量的需求:效率,指算法的执行时间;存储量需求指算法执行过程中所需要的最大存储空间。例如,求100个人的平均分和求1000个人的平均分所花的执行时间和空间显然是有一定差别的。 2.2 算法的度量 算法效率的度量——时间复杂度 算法执行时间需通过依据该算法编制的程序在计算机上运行所消耗的时间来度量。而度量一个程序的执行时间通常有两种方法:事后统计和事前估计。目前主要采用事前估计。一般情况下,把算法中基本操作重复执行的次数(注意不是时间,为什么?)叫做算法的时间复杂度。 若解决一个问题的规模为n,那么算法的时间复杂度就是n的一个函数,记作T(n)。 Example 2.1:求1+2+3+…+n。 Int sum() { int s=0; for (i=1;i=n;i++) s=s+i; return s; } Example 2.2:求矩阵和。 void matrixadd(A,B,C,n) { for(i=0;in;i++) for(j=0;jn;j++) C[i,j]=A[i,j]+B[i,j] } 一般,只需要大致计算出相应的数量级即可。设T(n)的一个辅助函数为f(n),定义为当n大于等于某一足够大的正整数n0时,存在一个正的常数C,使得T(n) ≤cf(n)均成立。此时称f(n)为T(n)的同数量级函数,可把T(n)表示成数量级的形式,即:T(n)=O(f(n))。在上述两例中,时间复杂度可以写为O(n)和O(n2)。 当n足够大后,各种不同数量级的T(n)函数存在以下关系: O(log2n)O(n)O(nlog2n)O(n2)…O(2n)O(n!) 时间复杂度除与问题规模n有关外,还跟输入的具体数据以及输入次序有关。 算法空间的度量——空间复杂度 依据算法编制成程序后,在计算机执行过程中所需要的最大存储空间。这些空间包括存储算法本身所占用的存储空间,算法的输入、输出数据所占用的存储空间和算法运行过程中临时占用的存储空间这三个方面空间的总和。 Example 2.3:给数组a赋初值。 Int f() { int a[100]; for (i=0;i=n;i++) a[i]=scanf(“%d”,a[i]); } 2.3 算法的描述 本课程采用类C语言(介于伪代码和C语言间的一种描述语言,并不是真正的C语言,无法直接运行)来描述算法,下面简单介绍后续课程中类C语言中要用到的一些语句。 1、预定义常量和类型 #define TRUE 1 #define FALSE 0 2、数据结构的表示 用类型定义typedef描述 3、基本操作的算法 统一用以下形式的函数描述: 函数类型 函数名(函数参数表) //算法说明 { 语句序列 }//函数名 4、赋值语句 1)简单赋值 变量名=表达式; 2)串联赋值 变量名1=变量名2=…=变量名k=表达式; 3)成组赋值 (变量名1,…,变量名k)=(表达式1,…,表达式k); 结构名=结构名; 结构名=(值1,…,值k);
您可能关注的文档
最近下载
- 喷墨打印OLED技术全球竞争格局与发展策略.docx VIP
- 2025年9月山西医科大学附属晋中医院(晋中市第一人民医院)招聘编制外人员38人笔试模拟试题及答案解析.docx VIP
- 2025年9月山西医科大学附属晋中医院(晋中市第一人民医院)招聘编制外人员38人考试参考试题及答案解析.docx VIP
- 人教版物理8年级下册全册教学课件.pptx
- 八年级上册语文文言文知识梳理(下).doc VIP
- 新人教版八年级数学下册全册ppt课件.pptx VIP
- 八年级上册语文文言文知识梳理(中).doc VIP
- 2024年秋季新人教版PEP版三年级上册英语全册教案.doc VIP
- 八年级上册语文文言文知识梳理(上).doc VIP
- 2025年春新沪教版九年级化学下册全册教学课件.pptx
原创力文档

文档评论(0)