DataStructures:algorithm analysis

1.算法是解决问题的指令集。单算法给定时,可以计算算法所用的时间或者空间资源。算法分析就是计算算法的时间和空间复杂度,并对算法做出优化,获取对问题更有效的计算方法。

2.当T(N)=O(f(N))(念大O),f(N)是T(N)的上界,也就是T(N)在以不快于f(N)的速度增长。f(N)=Ω(T(N))(念omega),则T(N)是f(N)的下界,T(N)=Θ(h(N))(念theta)是T(N)的增长率等于h(N)的增长率。T(N)=o(p(N))(念小o),T(N)的增长率小于p(N)的增长率,而大O包含增长率相等的可能性。

3.不要把常数项和低阶项放进大O中。可以使用计算极限lim(n->∞) f(N)/g(N)的值来确定两个函数f(N)和g(N)的相对增长率。
a.极限是0:f(N)=o(g(N))
b.极限是c!=0:f(N)=Θ(g(N))
c.极限是∞:g(N)=o(f(N))
d.极限摆动:二者没有关系

4.对算法分析是算法运行在忽略某些细节的模型上,计算其平均或者最坏的情况的时间和空间复杂度。程序实现的细节往往不会影响算法的大O结果。高效的算法往往期望数据被读入后能迅速觉解问题,而不是像低效算法占据着大量的计算资源。联机算法的特性是输入方式对算法影响不大。

5.对算法的分析要分析算法结果的准确性。当N扩大一倍时,线性程序的运行时间乘以因子2,二次程序的运行时间乘以因子4,三次程序的运行时间乘以因子8。以对数时间运行的程序,当N增加一倍时间运行只是多加一个常数,以O(NlogN)运行的程序运行时间为两倍稍多一些。如果低阶项的系数相对较大,并且N又不是足够大的时候,运行时间这种增量很难观察。验证一个程序是否是O(f(N)),可以计算T(N)/f(N),其中T(N)是经验运行时间。

6.这里写图片描述
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《数据结构与算法分析:C语言描述》这本书是一本非常经典的计算机科学教材,主要介绍了C语言下的数据结构和算法分析。这本书涵盖了很多基础的数据结构和算法,比如链表、堆、排序和搜索等等。通过学习这些知识,读者能够深入了解计算机科学的基础理论和实践技能。 从数据结构的角度来看,这本书深入浅出地介绍了线性数据结构和树状数据结构,并讲解了如何通过操作这些数据结构来进行高效的数据处理。例如,在数组中进行快速查找和插入、在链表中进行高效地增删操作、在树中进行高效的搜索等等。 从算法的角度来看,这本书介绍了很多著名的算法,比如递归、贪心算法、分治算法、动态规划算法等等。这些算法是计算机科学中非常重要的基础算法,它们在各个领域都有着广泛的应用。 总之,《数据结构与算法分析:C语言描述》这本书是计算机科学领域的经典教材,对于想要深入了解数据结构和算法分析的读者来说,这本书是不可或缺的。 ### 回答2: 《Data Structures and Algorithm Analysis in C》是一本关于数据结构和算法的经典教材,作者是Mark Allen Weiss。该书主要分为两部分,第一部分介绍了C语言的编程基础,包括语言特性、指针、内存管理等;第二部分则涵盖了数据结构和算法的各种概念、技术和实现方法。 本书首先介绍了常用数据结构,包括数组、链表、栈、队列、堆、二叉树等,然后讲解了各种经典算法,如排序、查找、图论算法等。在讲解数据结构和算法的同时,作者对每个主题都提供了C语言代码实现,并给出了能够测试代码的样例数据。此外,书中还包括大量习题和实验,帮助读者深入理解和熟练掌握各种数据结构和算法。 该书不仅适合作为计算机科学和工程专业的本科生和研究生的教材,也适合程序员进一步学习和提高自己的算法和数据结构能力。通过学习本书,读者将会掌握各种数据结构和算法的设计和实现方法,同时也能够提高自己的编程能力和提高代码的效率。 ### 回答3: 《Data Structures and Algorithm Analysis in C》(C语言数据结构与算法分析)是一本经典的计算机科学教材,由Mark Allen Weiss撰写。本书以C语言为基础,介绍了常见的数据结构和算法,并涉及到其分析和实现。 本书分为四个部分。第一部分主要是C语言的基础知识和算法分析的基本原则。第二部分介绍常见的数据结构,如数组、链表、树、堆和图等,旨在帮助读者了解这些数据结构的实现和应用。第三部分是算法设计和分析的内容,讲述了排序、查找、字符串匹配等经典问题,涉及到算法的复杂度和效率等方面。最后,第四部分提供了一些高级话题,如红黑树、哈希表等。 这本书的特点是内容包罗万象,深入浅出,除了C语言的基本知识外,还讲述了许多实用的技巧和方法。由于对数据结构和算法的深入掌握是计算机科学人员必备的技能,因此该书可以作为各种程序设计相关课程、面试准备和算法实践的重要参考。 总之,这本书是数据结构和算法领域的经典教材之一,对于任何想要提高编程能力和算法思维的人都是一本必读之作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值