下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

python应用:数据结构系统学习(2)算法

作者:一只帅气的IT小昂     来源: https://www.cnblogs.com/ITXiaoAng/p/12524990.html点击数:834发布时间: 2020-03-29 14:17:38

标签: python编程语言Python语言

大神带你学编程,欢迎选课

数据结构系统学习(2)算法。Python是一种解释型脚本语言,可以应用于以下领域:

web 和 Internet开发
科学计算和统计
人工智能
桌面界面开发
软件开发
后端开发
网络爬虫

目录

  • 1.什么是算法
  • 2.算法设计的要求
  • 3.算法效率的度量
  • 4.算法的存储空间需求

1.什么是算法

  算法是对特定问题求解步骤的一种描述,是指令的有限序列。 是由控制结构(顺序,分支和循环)和原操作(固有数据类型的操作)构成的 
  算法有5个特性:有穷性,确定性,可行性,输入和输出。

2.算法设计的要求

  一个不错的算法要有一些要求,如下: 

(1)正确性:无语法错误,对一些合法输入值要获得满足要求的结果,对一些典型,苛刻而带有刁难性的数据能得到满足要求的结果。 

(2)可读性:有便于人阅读和交流的风格。 

(3)健壮性:输入非法数据时,能适当地做出反应处理,并返回一个表示错误或者错误性质的值,并中止程序,而不是返回异常。 

(4)效率和低存储量:要执行时间短,代码所占内存存储量低。

3.算法效率的度量

  度量算法的效率有两种方法,一种是用指定量的数据运行程序,但这样结果会受到硬件,软件与编译器,编辑器的影响。所以现在大多数时间度量算法的效率用的是事前分析估算的方法。下面来介绍这种方法。 

  由于一个程序设计语言的程序在计算机上的运行耗时取决于:选用的策略,问题的规模,书写语言的程序,编译出的机器代码的质量以及机器执行指令的速度,而这些会受到好多因素的影响。因此再用时间衡量算法的效率就不合适了。需要其他方面来衡量。这里用时间复杂度来衡量一个算法。 

什么是时间复杂度 

  这里认为算法运行量的大小,也就是运行多少代码,只依赖于问题的规模,记为n。 

  在一个问题中,在算法中选取一个对研究问题是基本操作的原操作,然后它的重复次数是问题规模n的某个函数f(n),则这个时候的时间度量 

  O[f(n)]称作是 算法的时间复杂度 。 

  这个时候就会得到结论:问题规模n的频度越多,重复次数越多,执行时间越多,时间复杂度越复杂。

4.算法的存储空间需求

  记存储空间的量度S(n) = O(f(n))为空间复杂度,是用来衡量算法占用内存的复杂程度。 

  一个算法应追求低时间复杂度,低空间复杂度为标准。按照最快情况考虑。

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

赞(8)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程