`

算法和数据结构

阅读更多
算法:
数据结构与算法的关系是相互依赖不可分割的。
算法的定义:算法是解决特定问题求解步骤的描述,在计算机中为指令的有限序列,并且每条指令表示一个或多个操作。
算法的特性:有穷性、确定性、可行性、输入、输出。
算法设计的要求:正确性、可读性、健壮性、高效率和低存储量需求。
算法特性与算法设计容易混,需要对比记忆。
算法的度量方法:事后统计方法(不科学、不准确)、事前分析估算方法。
在讲解如何用事前分析估算方法之前,我们先给出了函数渐近增长的定义。
算法的时间复杂度和空间复杂度
函数的渐近增长:给定两个函数f(n)和g(n),如果存在一个整数N,使得对于所有的n > N,f(n)总是比g(n)大,那么,我们说f(n)的增长渐近快于g(n)。于是我们可以得出一个结论,判断一个算法好不好,我们只通过少量的数据是不能做出准确判断的,如果我们可以对比算法的关键执行次数函数的渐近增长性,基本就可以分析出:某个算法,随着n的变大,它会越来越优于另一算法,或者越来越差于另一算法。
然后给出了算法时间复杂度的定义和推导大O阶的步骤。
推导大O阶:
用常数1取代运行时间中的所有加法常数。
在修改后的运行次数函数中,只保留最高阶项。
如果最高阶项在且不是1,则去除与这个项相乘的常数。
存得到的结果就是大O阶。
通过这个步骤,我们可以在得到算法的运行次数表达式后,很快得到它的时间复杂度,即大O阶。同时我也提醒了大家,其实推导大O阶很容易,但如何得到运行次数的表达式却是需要数学功底的。
接着我们给出了常见的时间复杂度所耗时间的大小排列: 如图

  • 大小: 19.6 KB
分享到:
评论

相关推荐

    算法与数据结构.pdf

    这一过程通常分为四个步骤:分析问题,设计数据结构和算法,编码,以及测试与维护。在分析阶段,我们需要理解问题的内在联系;在设计阶段,我们将考虑如何用数据结构来表示问题中的元素,以及如何通过算法来处理这些...

    算法导论——所有算法和数据结构的C++实现

    所有代码都是在我学习这本书时亲手敲出来的,并且调试正确了,包括:第三部分到第六部分(即10-26章),外加第七部分31和32章所有的算法和数据结构以及编程习题还有思考题的C++实现源代码; 第一、二部分学习的较早...

    信息学奥赛(基础算法和数据结构)视频链接(2020.11.24).pdf

    * 奥林匹克信息学竞赛(NOIP)数据结构与算法教程:一个详细介绍数据结构和算法的教程。 * 洛谷 2020 算法竞赛秋令营:一个在线算法竞赛平台,提供了许多有用的算法和数据结构资源。 *计蒜客选课中心:一个在线学习...

    数据结构-基于Java的算法和数据结构源码.zip

    数据结构-基于Java的算法和数据结构源码.zip数据结构-基于Java的算法和数据结构源码.zip数据结构-基于Java的算法和数据结构源码.zip

    挑战程序设计竞赛2 算法与数据结构_高清完整书签.rar

    《挑战程序设计竞赛2 算法与数据结构》是一本专为程序设计人员和爱好者量身打造的书籍,尤其适合那些对算法和数据结构有浓厚兴趣的读者,包括高校计算机专业的学生和教师。该书提供了全面且深入的算法解析和实例应用...

    JavaScript算法和数据结构

    数据结构是在计算机中组织和存储数据的一种特殊...算法和数据结构是计算机学习的基石。无论你学习计算机的任何方向,没有扎实的算法和数据结构,肯定学习起来就捉襟见肘了。这是基于 JavaScript 的算法和数据结构教程。

    Java算法和数据结构

    一本讲述java算法和数据结构的好书。 什么是数据结构和算法?

    delphi算法与数据结构.rar

    《Delphi算法与数据结构》是一本专注于使用Delphi编程语言进行算法实现和数据结构学习的资源集合。这本书籍共分为四部分,包含了丰富的理论知识和实践案例,是Delphi开发者深入理解算法和数据结构的必备参考。 在...

    delphi算法与数据结构

    delphi算法与数据结构,这本书使用delphi语言讲解算法和数据结构,pdf内容清晰。

    算法和数据结构新手班.zip

    算法和数据结构新手班.zip

    算法与数据结构课后与习题解析

    《算法与数据结构课后与习题解析》是学习计算机科学不可或缺的重要参考资料,它涵盖了算法设计、分析以及数据结构的基本概念、原理和应用。在这个PDF文档中,读者可以找到详尽的理论解释以及一系列的练习题,以帮助...

    算法+数据结构=程序

    本书的核心理念是,理解并掌握正确的数据结构和算法是提升程序性能和效率的关键。下面我们将详细讨论这两个核心主题。 **算法** 算法是解决问题或执行任务的一系列有序步骤。它们是计算机科学的基础,因为几乎所有...

    算法和数据结构以及LeetCode刷题心得

    算法和数据结构以及LeetCode刷题心得

    算法与数据结构考研试题精析(第三版)

    该书除了包含大量的算法和数据结构知识点讲解外,还提供了1800题的考研试题分析,帮助考生在备考研究生入学考试时能够更好地掌握这两门课程的核心内容和解题技巧。 算法与数据结构是计算机科学与技术专业的核心课程...

    国外经典算法和数据结构

    国外经典“算法”+“数据结构”电子书下载.part1.rar

Global site tag (gtag.js) - Google Analytics