数据结构笔记(1)算法数据结构的基本概念O估计法
2014-07-07 14:59
239 查看
数据结构:研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。
数据:
描述客观事物的符号。*可以输入到计算机中 *能被计算机处理
数据元素:组成数据的、有一定意义的基本单位。Ex.人类中:人 畜类中:牛、羊、马
数据项:一个数据元素由若干个数据项组成。数据项是数据不可分割的最小单位。
数据对象:性质相同的数据元素的集合,是数据的子集。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
逻辑结构:是指数据对象中数据元素之间的相互关系。
1、集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其他关系。
2、线性结构:线性结构中的数据元素之间是一对一的关系。
3、树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。
4、图形结构:图形结构的数据元素是多对多的关系。
物理结构:是指数据的逻辑结构在计算机中的储存形式。
1、顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
2、链式存储结构:把数据元素存放在任意的存储单元里,这组存储单元可以使连续的,也可以是不连续的。
算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法的特性:
输入输出: 零个或多个输入,一个或多个输出。
有穷性:算法执行有限的步骤之后,自动结束而不会出现无限循环,并且每一步骤在可以接受的时间内完成。
确定性:算法的每一步骤都具有明确的含义,不会出现二义性。
可行性:算法的每一步都必须是可行的,也就是说,每一步都要能够通过执行有限次数完成。
事前分析估算方法:1、在计算机程序编制前,依据统计学方法对算法进行估算。
2、在分析程序的运行时间时,最重要的是把程序看成是独立于程序设计语言的算法或 一系列步骤。
3、在分析一个算法的运行时间时,重要的是把基本操作的数量与输入规模关联起来, 即基本操作的数量必须表示成输入规模的函数。
函数的渐进增长:判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更关注最高阶项阶数
算法时间复杂度:T( n ) = O( f( n ) )
例:
第一种求和算法
![](http://img.blog.csdn.net/20140707150323796)
第二种求和算法:
![](http://img.blog.csdn.net/20140707150436421)
第三种求和算法:
![](http://img.blog.csdn.net/20140707150443531)
![](http://img.blog.csdn.net/20140707150343687)
推导大O阶方法:
![](http://img.blog.csdn.net/20140707150347796)
例:
对数阶:O(logn)
![](http://img.blog.csdn.net/20140707151133500)
常数阶:O(1)
![](http://img.blog.csdn.net/20140707150846109)
线性阶:O(n)
![](http://img.blog.csdn.net/20140707150744828)
![](http://img.blog.csdn.net/20140707150854625)
平方阶:O(n^2)
![](http://img.blog.csdn.net/20140707150859484)
总结:
数据:
描述客观事物的符号。*可以输入到计算机中 *能被计算机处理
数据元素:组成数据的、有一定意义的基本单位。Ex.人类中:人 畜类中:牛、羊、马
数据项:一个数据元素由若干个数据项组成。数据项是数据不可分割的最小单位。
数据对象:性质相同的数据元素的集合,是数据的子集。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
逻辑结构:是指数据对象中数据元素之间的相互关系。
1、集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其他关系。
2、线性结构:线性结构中的数据元素之间是一对一的关系。
3、树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。
4、图形结构:图形结构的数据元素是多对多的关系。
物理结构:是指数据的逻辑结构在计算机中的储存形式。
1、顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
2、链式存储结构:把数据元素存放在任意的存储单元里,这组存储单元可以使连续的,也可以是不连续的。
算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法的特性:
输入输出: 零个或多个输入,一个或多个输出。
有穷性:算法执行有限的步骤之后,自动结束而不会出现无限循环,并且每一步骤在可以接受的时间内完成。
确定性:算法的每一步骤都具有明确的含义,不会出现二义性。
可行性:算法的每一步都必须是可行的,也就是说,每一步都要能够通过执行有限次数完成。
事前分析估算方法:1、在计算机程序编制前,依据统计学方法对算法进行估算。
2、在分析程序的运行时间时,最重要的是把程序看成是独立于程序设计语言的算法或 一系列步骤。
3、在分析一个算法的运行时间时,重要的是把基本操作的数量与输入规模关联起来, 即基本操作的数量必须表示成输入规模的函数。
函数的渐进增长:判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更关注最高阶项阶数
算法时间复杂度:T( n ) = O( f( n ) )
例:
第一种求和算法
第二种求和算法:
第三种求和算法:
推导大O阶方法:
例:
对数阶:O(logn)
常数阶:O(1)
线性阶:O(n)
平方阶:O(n^2)
总结:
相关文章推荐
- 数据结构(一):数据结构的基本概念和算法的时间和空间复杂度
- 数据结构基本概念及算法和算法分析 -- 引自《新编数据结构习题与解析》(李春葆等著)
- 解读Cardinality Estimation<基数估计>算法(第一部分:基本概念)
- 什么是算法-数据结构学习笔记1.2(基本概念)
- 数据结构基本概念和算法分析
- 数据结构和算法的基本概念
- [数据结构]算法基本概念和推导大O阶步骤
- 数据机构与算法-数据结构的一些基本概念
- 数据结构和算法基本概念
- [数据结构和算法]算法基本概念
- 数据结构和算法-----基本概念
- Java算法基础----数据结构基本概念
- 数据结构之概述(数据和算法基本概念,时间复杂度)
- 数据机构与算法-数据结构的一些基本概念
- 从零开始_学_数据结构(一)——算法的基本概念
- 数据结构与算法基本概念
- 数据机构与算法-数据结构的一些基本概念
- 算法和数据结构基本概念
- 数据结构与算法之--基本概念
- 数据结构 学习笔记(一):基本概念:什么是数据结构和算法,应用实例