📜  DAA算法

📅  最后修改于: 2020-12-10 03:41:29             🧑  作者: Mango

DAA算法

“算法”一词源于波斯语作者阿布·贾·法尔·穆罕默德·伊本·穆萨·阿尔·霍瓦里兹米(约公元825年),后者写了一本数学教科书。这个词是基于在计算机科学中具有特殊意义而使用的。该算法被理解为一种在需要为特定问题提供解决方案时可以由计算机使用的方法。

可以将算法定义为一组有限的步骤,在执行特定问题时必须遵循这些步骤。这只是逐步执行动作的过程。

算法是一种独特的计算过程,该过程将输入作为一组值并通过解决问题而将输出作为一组值。更准确地说,如果算法对于每个输入实例都获得正确的输出并终止,则它是正确的。

一种算法解决了计算问题,以输出所需的结果。可以通过合并自然语言(例如英语,计算机语言或硬件语言)来描述算法。

算法特征

  • 输入:应从外部提供零个或多个数量。
  • 输出:至少产生一个数量。
  • 确定性:每条指令应清晰明确。
  • 有限度:算法应在执行有限数量的步骤后终止。
  • 有效性:原则上,每条指令都应由仅使用笔和纸的人执行。
  • 可行:产生每条指令必须足够可行。
  • 灵活性:它必须足够灵活才能毫不费力地执行所需的更改。
  • 高效:术语效率是根据算法实现所需的时间和空间来衡量的。因此,算法必须确保花费很少的时间和更少的存储空间来满足开发时间可接受的限制。
  • 独立:算法必须独立于语言,这意味着它应主要专注于输入和导出输出所需的过程,而不是取决于语言。

算法的优点

  • 有效的沟通:由于它是用英语等自然语言编写的,因此易于理解针对任何特定问题的解决方案的分步描述。
  • 易于调试:精心设计的算法可简化调试过程,以检测程序内部发生的逻辑错误。
  • 简单高效的编码:算法不过是有助于开发程序的程序蓝图。
  • 与编程语言无关:由于它与语言无关,因此可以通过合并任何高级语言来轻松对其进行编码。

算法的缺点

  • 为复杂问题开发算法将非常耗时且难以理解。
  • 通过算法了解复杂的逻辑是一项艰巨的任务。

伪码

伪代码是对计算机程序或其他算法的操作原理的非正式高级描述。它使用旨在供人类阅读而不是机器阅读的标准编程语言的结构约定。

伪代码的优点

  • 由于它类似于编程语言,因此与流程图相比,它可以快速转换为实际的编程语言。
  • 外行可以很容易地理解它。
  • 与流程图相比,可轻松修改。
  • 它的实现对结构化,设计元素有利。
  • 在将错误转换为代码之前,它可以轻松检测到错误。

伪代码的缺点

  • 由于它不包含任何标准化的样式或格式,因此对于一家公司而言,它可能会有所不同。
  • 转换为代码时出错的可能性更高。
  • 它可能需要用于提取伪代码的工具,并有助于绘制流程图。
  • 它没有描述设计。

算法和伪代码之间的区别

算法只是解决问题的过程,不仅在计算机科学中用于编写程序,而且在我们的日常生活中也使用。它只是解决问题或解决问题的一系列说明。它不仅有助于简化问题,而且可以更好地理解它。

但是,伪代码是一种编写算法的方法。程序员可以使用非正式的简单语言编写伪代码,而无需遵循任何严格的语法。它包含半数学语句。

问题:假设班上有60名学生。您将如何计算班级缺勤人数?

伪方法:

  • 初始化一个名为Count的变量为零,不存在为零,总计为60
  • 对于每个学生,请执行以下操作:将计数增加一
  • 然后从总数中减去计数并将结果存储在不存在的情况下
  • 显示缺勤学生数

算法方法:

  • 计数<-0,缺席<-0,总数<-60
  • 重复直到所有学生计数Count <-Count + 1
  • 缺席<-总计-计数
  • 打印“号码缺席为:”,缺席