数据结构-绪论-算法及其描述

算法及其描述

数据元素之间的关系有逻辑关系和物理关系,对应的运算有基于逻辑结构的运算描述基于存储结构的运算实现。    

算法  是对特定问题求解步骤的一种描述,它是指令的有限序列。其中每一条指令表示计算机的一个或多个操作。

(一). 算法的五个重要的特性

(1)有穷性:在有穷步之后结束,算法能够停机。

(2)确定性:无二义性。 

(3) 可行性:可通过基本运算有限次执行来实现,

           也就是算法中每一个动作能够被机械地执行。

表示存在数据处理:

(4)有输入

(5)有输出

算法设计的目标:

(1) 正确性

(2)可使用性

(3)可读性

(4)健壮性

(5)高效率与低存储量需求

(二).算法描述


②:输出型参数的设计



其中,&a,&b分别是实参a,b的地址,并且改正后swap2()可读性差。



在C++语言中提供了一种引用运算符“&”。当建立引用时,程序用另一个已定义的变量

(目标变量)的名字初始化它,从那时起,引用变量作为目标变量的别名使用,对引用变量的改动实际是对目标变量的改动。

例如:

int  a=4;     //定义整形变量a;

int &b=a;   //定义整形变量a的引用变量b;

第2个语句定义b变量是变量a的引用变量,b也等于4,之后这两个变量同步改变。


③.算法分析

概述:


      一个算法是由控制结构(顺序、分支和循环三种)和原操作(指固有数据类型的操作,如+、-、*、/、++和--等)构成的。算法执行时间取决于两者的综合效果。

一:时间复杂度











二:空间复杂度



④.数据结构+算法=程序

求解的问题可以通过抽象数据类型来描述,它由数据的逻辑结构和抽象运算两部分组成。一种数据结构的逻辑结构可以映射成多种存储结构,抽象运算在不同的存储结构上实现可以对应多种算法,在同一种存储结构上实现也可能有多种算法,通过算法的时间复杂度和空间复杂度等分析可以得到好的算法。

存储结构对算法的影响主要在下面两个方面:

1.存储结构的存储能力

如果存储结构的存储能力强,存储的信息多,算法将会较好设计。往往存储能力是与所使用的空间大小成正比。

2.存储结构与所选择的算法相适应

存储结构是实现算法的基础,也会影响算法的设计,其选择要充分考虑算法的各种操作,应与算法的操作相适应。

算法通常是决定程序效率的关键,但一切算法最终都要在相适应的数据结构上实现,许多算法的精髓就是在与选择了合适的数据结构作为基础。在程序设计中不仅要注重算法设计,也要正确的选择数据结构,这样往往能够事半功倍。


你可能感兴趣的:(数据结构,算法定义)