热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

算法的定义及分析

原标题:算法的定义及分析算法的定义算法是一系列良定义的计算步骤算法和程序的区别算法

原标题:算法的定义及分析


算法的定义

算法是一系列良定义的计算步骤


算法和程序的区别



算法

算法是指解决问题的一种方法或一个过程。
算法是若干指文章来源站点https://www.yii666.com/令的有穷序列,满足性质:


  1. 输入:有外部提供的量作为算法的输入。

  2. 输出:算法产生至少一个量作为输出。

  3. 确定性:组成算法的每条指令是清晰,无歧义的。

  4. 有限性:算法中每条指令的执行次数是有限的,执行每条指www.yii666.com令的时间也是有限的。



程序


  1. 程序是算法用某种程序设计语言的具体实现。

  2. 程序可以不满足算法的性质(4)。

  3. 例如操作系统,是一个在无限循环中执行的程序,因而不是一个算法。

  4. 操作系统的各种任务可看成是单独的问题,每一个问题由操作系统中的一个子程序通过特定的算法来实现。该子程序得到输出结果后便终止。



算法的性质

有穷性:算法必须在有限步骤后终止

确定性:算法必须是没有歧义的

可行性:可以机械的一步步执行


算法的表示

自然语言、编程语言、伪文章来源地址51159.html代码


算法的分析



分析原则


  1. 统一机器性能

  2. 情况最坏分析

算法运行时间仅依赖于输入规模n,表示为T(n)


渐进分析


渐进记号文章来源地址51159.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


常用的复杂性函数

在这里插入图片描述
在这里插入图片描述


算法分析基本法则

非递归算法:


  1. for / while 循环
    循环体内计算时www.yii666.com循环次数;

  2. 嵌套循环
    循环体内计算时间*所有循环次数;

  3. 顺序语句
    各语句计算时间相加;

  4. if-else语句
    if语句计算时间和else语句计算时间的较大者。

来源于:算法的定义及分析


推荐阅读
  • 以数据驱动品牌,为出海强势护航
                    原创
    原标题:以数 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
  • 原标题:Python中numpy.power()函数介绍Python中numpy.power()函数介绍power(x,y)函数, ... [详细]
  • 智商狂飙,问了ChatGPT几个数据库问题后,我的眼镜掉了
    原标题:智商狂飙,问了ChatGPT几个数据库问题后,我的眼镜掉了最近,ChatGPT火爆全网,介绍其产品、公司、作者、技术和应用等方面信息,占据着整个互联网,似乎不谈GPT好像 ... [详细]
  • 直击热门考点——结构体内存对齐
    原标题:直击热门考点——结构体内存对齐文章目录前言一、引例 ... [详细]
  • 20210921c++ 继承,虚继承(内存结构)
    原标题:2021-09-21c++继承,虚继承(内存结构)普通的公有继承 ... [详细]
  • node.js 全局变量说明
    原标题:node.js全局变量说明文章目录全局对象 ... [详细]
  • clickhouse 二(springboot+mybatis配置clickhouse,实现插入查询)
    原标题:clickhouse二(springboot+mybatis配置clickhouse,实现插入查询)开发步骤 ... [详细]
  • JavaScript实现拖动对话框效果
    原标题:JavaScript实现拖动对话框效果代码实现:<!DOCTYPEhtml><htmllan ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
author-avatar
个信2602881723
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有