📜  DAA-简介

📅  最后修改于: 2021-01-12 03:29:16             🧑  作者: Mango


算法是一组操作步骤,用于解决执行计算,数据处理和自动推理任务的问题。算法是一种可以在有限的时间和空间内表达的有效方法。

算法是以非常简单和有效的方式表示特定问题的解决方案的最佳方法。如果我们有针对特定问题的算法,那么我们可以使用任何编程语言来实现它,这意味着该算法独立于任何编程语言

算法设计

算法设计的重要方面包括创建有效的算法以使用最少的时间和空间以有效的方式解决问题。

为了解决问题,可以采用不同的方法。就时间消耗而言,其中一些方法可能是有效的,而其他方法可能是内存有效的。但是,必须记住,不能同时优化时间消耗和内存使用。如果我们需要算法在更短的时间内运行,我们必须投资更多的内存,如果我们需要算法在更短的内存上运行,我们需要更多的时间。

问题发展步骤

解决计算问题涉及以下步骤。

  • 问题定义
  • 模型开发
  • 算法规范
  • 设计算法
  • 检查算法的正确性
  • 算法分析
  • 算法的实现
  • 程序测试
  • 文献资料

算法特征

算法的主要特点如下-

  • 算法必须具有唯一的名称

  • 算法应具有明确定义的一组输入和输出

  • 算法操作明确,操作明确

  • 算法在有限的时间内停止。算法不应无限运行,即算法必须在某个时刻结束

伪码

伪代码可以对算法进行高级描述,而无需与纯文本相关联的歧义,也无需了解特定编程语言的语法。

通过使用伪代码将算法表示为一组基本运算,可以以一种更通用的方式估算运行时间,然后可以对其进行计数。

算法和伪代码之间的区别

算法是一种形式化的定义,具有描述过程的某些特定特征,可以由图灵完备的计算机机器执行以执行特定任务。通常,“算法”一词可用于描述计算机科学中的任何高级任务。

另一方面,伪代码是算法的非正式且(通常是基本的)人类可读的描述,其中保留了许多细节。编写伪代码不受样式的限制,其唯一目的是用自然语言以更加现实的方式描述算法的高级步骤。

例如,以下是插入排序的算法。

Algorithm: Insertion-Sort 
Input: A list L of integers of length n  
Output: A sorted list L1 containing those integers present in L 
Step 1: Keep a sorted list L1 which starts off empty  
Step 2: Perform Step 3 for each element in the original list L  
Step 3: Insert it into the correct position in the sorted list L1.  
Step 4: Return the sorted list 
Step 5: Stop

这是一个伪代码,描述了如何以更实际的方式描述上述插入-排序算法中的高层抽象过程。

for i  0 and A[j-1] > x 
      A[j] 

在本教程中,算法将以伪代码的形式呈现,在许多方面与C,C++,Java, Python和其他编程语言相似。