266.算法概论(概念 特性 原则)

1.概念

1.1定义

算法是为了解决某类问题而规定的一个有限长的操作序列。?处理问题的策略

2.特性

算法五个重要特性
?算法必须满足五个重要特性?算法五个要素的确切含义

1.有穷性
  对于任意一组合法输入值,在执行有穷步骤之后一定能结束,?即:算法中的每个步骤都能在有限时间内完成。?算法与程序区别:程序没有有穷性

2.确定性  
  对于每种情况下所应执行的操作,在算法中都有确切的规定,?使算法的执行者或阅读者都能明确其含义及如何执行。?并且在任何条件下,算法都只有一条执行路径。

3.可行性
  算法中的所有操作都必须足够基本,?都可以通过已经实现的基本操作运算有限次实现之。

4.有输入 
  作为算法加工对象的量值,通常体现为算法中的一组变量。?有些输入量需要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上已被嵌入算法之中。

5.有输出
  它是一组与“输入”有确定关系的量值,?是算法进行信息加工后得到的结果,?这种确定关系即为算法的功能。

3.设计原则

算法设计的原则
设计算法时,通常应考虑达到的目标(判断好坏的标准)

1. 正确性
  首先,算法应当满足以特定的“规格说明”方式给出的需求。?其次,对算法是否“正确”的理解可以有以下四个层次:?a.程序中不含语法错误;b.程序对于几组输入数据能够得出满足要求的结果;c.程序对于精心选择的、典型、苛刻且带有刁难性的几组输入数据能够得出满足要求的结果;d.程序对于一切合法的输入数据都能得出满足要求的结果;通常以第 c 层意义的正确性作为衡量一个算法是否合格的标准。

2. 可读性
  算法主要是为了人的阅读与交流,其次才是为计算机执行,因此算法应该易于人的理解;?另一方面,晦涩难读的程序易于隐藏较多错误而难以调试。

3. 健壮性
  当输入的数据非法时,?算法应当恰当地作出反映或进行相应处理,?而不是产生莫名奇妙的输出结果。?并且,处理出错的方法不应是中断程序的执行,?而应是返回一个表示错误或错误性质的值,?以便在更高的抽象层次上进行处理。

4. 高效率与低存储量需求
  通常,?效率指的是算法执行时间;?存储量指的是算法执行过程中所需的最大存储空间,?两者都与问题的规模有关。

原文地址:https://www.cnblogs.com/ZanderZhao/p/11490693.html

时间: 2024-11-07 08:24:58

266.算法概论(概念 特性 原则)的相关文章

[数据结构和算法]算法基本概念

算法基本概念: 算法:用来对数据的操作作描述,是对问题求解的步骤的描述.是一系列将输入转为输出的计算步骤 算法复杂度:分为时间复杂度和空间复杂度时间复杂度:算法中所有语句的频度之和用T(n)表示,记为T(n) = O(n) 常见时间复杂度递增次序:常数 O(1) , 对数阶O(log2^n) , 线性阶O(n) , 线形对数阶O(nlog2^n),平方阶O(n^2),立方阶O(n^3),指数阶O(2^n),O(n!),O(n^n)当n值增大,算法时间复杂度即变大,执行效率变低 最坏时间复杂度:最

【C/C++学院】0828-STL入门与简介/STL容器概念/容器迭代器仿函数算法STL概念例子/栈队列双端队列优先队列/数据结构堆的概念/红黑树容器

STL入门与简介 #include<iostream> #include <vector>//容器 #include<array>//数组 #include <algorithm>//算法 using namespace std; //实现一个类模板,专门实现打印的功能 template<class T> //类模板实现了方法 class myvectorprint { public: void operator ()(const T &

算法概论

1.算法与数据结构的关系: (1)数据结构+算法=程序 数据结构是对数据的描述,算法是对数据的操作,因此:数据结构+算法=程序 算法侧重于对解决问题的方法的描述. 程序是对一个算法的具体实现. (2)联系: 数据结构是算法设计的基础. 算法的操作对象是数据结构. 数据结构设计主要是选择数据的存储方式,算法设计是在选择的数据结构基础上设计一个好的算法. 数据结构关注的是数据的逻辑结构.存储结构.基本操作,而算法关注的是如何在数据结构基础上解决实际问题. 2.算法设计的目标: (1)正确性:正确地执

算法基本概念

1.算法:是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或者多个操作. 2.算法的特性:输入,输出,有序性,确定性和可行性. 3.算法设计的要求:正确性,可读性,健壮性(当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名奇妙的结果),时间效率高和存储量低. 4.算法效率的度量:事后统计方法,事前分析估算方法 5.函数的渐近增长:给定两个函数f(n)和g(n),如果存在一个整数N,使得所有的n>N时,f(n)都比g(n)大,那么f(n)的增长渐近快于

《算法概论》第八章的一些课后题目 关于NP-Complete Problem

8.3 STINGY SAT STINGY SAT is the following problem: given a set of clauses (each a disjunction of literals) and an integer k, find a satisfying assignment in which at most k variables are true, if such an assignment exists. Prove that STINGY SAT is N

数据结构和算法基本概念

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合. 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科. 程序设计的实质是对确定的问题选择一种好的结构,加上设计一种好的算法. 程序设计 = 数据结构 + 算法 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合. 数据其实就是符号,必须具备两个前提: 1)可以输入到计算机中 2)能被计算机程序处理 数据元素:是组成数据的,有一点意义的基本单位

设计模式总结:概念、原则、23种模式分析

1.什么是设计模式 设计模式从本质上讲,是针对过去某种经验的总结.每种设计模式都是为了在特定条件下去解决某种问题. 设计模式中的每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复劳动.它是可复用面向对象软件的基础. 设计模式解决的是系统设计问题,设计模式是"术",设计模式背后的用意才是"道".GoF提出了23中设计模式,是对日常用到的模式总结归纳出的,他们不是一盘散沙,是有关系的.就是对象的生

算法 (一) 概念

前言 Algorithms +  Data Structures = Programs //N.Wirth 1976 虽然大一大二学了数据结构和很多算法,但是一到用的时候就经常想不起来...,而且明年就要考研了,为了能让自己更系统的掌握,决定要全面的学习一下,为以后打好基础!!! 一.概念 计算 = 信息处理 借助某种工具,遵照一定规则,以明确而机械的形式进行 计算模型 = 计算机 = 信息处理工具 算法:即特定计算模型下,旨在解决特定问题的指令序列 二.特征 输入:待处理的信息(问题) 输出:

算法基础概念

算法(Algorithm):解决特定问题求解步骤的描述,计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作. 算法的特性: 输入输出有穷性(无死循环)确定性(执行路径唯一,相同的输入唯一的输出)可行性(每一步都是可行的)算法设计的要求: 正确性可读性健壮性高效,低耗--------------------- 作者:两块腹肌的yu先生 来源:CSDN 原文:https://blog.csdn.net/qq_28686911/article/details/82825553 版权声明:本文