美文网首页
第一章_算法

第一章_算法

作者: 脆脆在读书 | 来源:发表于2018-11-14 14:06 被阅读0次

数据结构和算法设计是相辅相成的。

计算机解决问题的五个步骤

1. 问题的理解:清楚问题的输入、要求和输出;

2. 数据结构设计:一方面要选择或设计能有效表示和存储应用问题中所涉及的数据 对象的数据结构,同时还要选择或设计能支持算法策略实现的数据结构;

3. 算法设计:包括选择算法策略、用适当的方式描述和逐步细化算法步骤;

4. 算法分析:发现有改进完善之处,返回第二步,重新选择或设计数据结构、重新 设计算法;

5. 程序实现:用某种计算机程序设计语言,定义数据结构、编写实现算法的代码, 在计算机上调试和运行程序。

算法复杂度分析

好的算法应该具备以下特性:

正确性:正确性是对算法能否正确求解问题的评价,是首要和最基本的特性;

可读性:可读性是对算法描述的思路、层次的评价。好的算法应该是思路清晰、 层次分明、阅读和修改容易;

健壮性:健壮性是对算法在异常情况下处理能力的评价。好的算法在出现异常或非法数据时,在操作不当时,算法都能作适当处理;

高效性:算法的效率是对求解同样问题的不同算法所占用的时间或空间的评价。 好的算法应该是高效的,即求解问题所占用存储空间少,执行时间短; 

算法复杂读分析,主要是分析算法的效率。

如何比较算法效率呢?

1. 通过运行时间比较算法效率很难做到准确,只能做定型分析,要定量分析得靠分析算法复杂度分析

2. 算法复杂性是算法运行所需要的计算机资源的量,需要时间资源的 量称为时间复杂性,需要的空间资源的量称为空间复杂性。这个量应该 只依赖于算法要解的问题的规模、算法的输入和算法本身的函数。如果 分别用N、I和A表示算法要解问题的规模N、算法的输入I和算法本身A,而且 用C表示复杂性,那么,应该有C=F(N,I,A)。一般把时间复杂性空间复杂性分开,并分别用T和S来表示,则有: T=T(N,I)和S=S(N,I) 。(通常,让A隐含在复杂性函数名当中)

规定输入

最坏情况下的时间复杂性:

最好情况下的时间复杂性:

平均情况下的时间复杂性:

相关文章

  • 《漫画算法》读书笔记

    小灰(小白)的算法之旅 第一章 算法概述 1.1 算法和数据结构 算法(Algorithm):在数学领域用于解决...

  • 数据结构01-常规排序算法

    第一章 常规排序算法 第一章 常规排序算法一、排序的基本概念排序内部排序与外部排序排序的稳定性二、冒泡排序算法思想...

  • 算法设计备考笔记

    第一章 算法概述 算法的定义:算法是解决问题的过程 算法的三要素:操作,控制结构,数据结构 算法的五大基本特征:...

  • Python 目录

    python 资料 python写的常用脚本,用到的时候快速修改 python算法教程(第一章) python算法...

  • 终极算法 by domingos(一)

    第一章 机器学习革命 算法:输入数据和算法,输出结果。 机器学习:输入数据和结果,输出算法。 在机器学习中,知识往...

  • 创作101第一季丨第1天丨学习笔记

    数据结构与算法_第一章_2 程序 = 算法 + 数据结构, 算法 = 逻辑 + 控制。 数据结构两大用途:一是用于...

  • day50课堂笔记(Nginx Proxy深入)

    第一章、负载均衡深入 1.1、调度算法 1.11第一类为静态调度算法 1.12第二类动态调度算法 1.2、prox...

  • 终极算法----第一章 机器学习革命(1)

    第一章 机器学习革命 1.1 何为算法 所有算法,无论多复杂,都能分解为这三种逻辑运算:且,或,非。 一种算法不仅...

  • 算法导论——第一部分 基础知识(一)

    第一章 算法在计算中的作用 1.1算法 问题陈述 说明了期望的输入\输出关系算法 就是把输入转换成输出的计算步骤的...

  • 算法笔记和一点点前端笔记

    算法笔记: 第一章 算法概述 1、时间复杂度(按照从低到高的顺序O(1)、O(logn)、O(n)、O(nlo...

网友评论

      本文标题:第一章_算法

      本文链接:https://www.haomeiwen.com/subject/weadfqtx.html