数据结构笔记(一)

数据:描述客观事物的符号。(可能相当于java中的Object类)

数据元素:组成数据的有一定意义的基本单位。(可能相当于java中的一个类对象)

数据项:组成数据元素。(可能相当于java中的成员属性或方法)

数据对象:相同性质的数据元素的集合,数据的子集。(可能相当于java里的集合或数组或队列或栈)

逻辑结构:数据对象中数据元素间的相互关系。(集合结构、线性结构、树结构、图结构)

物理结构:(存储结构)数据的逻辑结构在计算机上的存储方式。(顺序结构、链式结构)

算法:描述特定问题的解决步骤。(特性:输入、输出、有穷、可行、确定)

评价算法的好坏:可读性、健壮性、正确性、时间效率高、存储量低。

时间效率:在分析程序运算时间时,最重要的是把程序看成是独立于程序设计语言的算法或一系列步骤,时间效率主要取决于运行时有消耗的基本操作的执行次数。

算法的时间复杂度:在进行算法分析时, 语句总的执行次数T ( n )是关于问题规模n的函数,进而分析T ( n )随n 的变化情况并确定T ( n )的数量级。算法的时间复杂度.也就是算法的时间量度,记作: T ( n )= O(f(n))。它表示随输入规模n 的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中f ( n) 是问题规模n 的某个函敬。

推导时间复杂度:1.用常数1取代运算中的加法常数项;2若有n的最高阶项则只保留此项;3去掉最高阶项的常数。(分析算法的复杂度,关键是分析循环结构的运行情况)

常见的时间复杂度所耗费的时间从小到大依次为:O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)

算法的空间复杂度:通过计算算法所需的存储空间实现,算法空间复杂度的计算公式记作: S(n)= O(f(n)) ,其中, n 为问题的规模, f(n)为语句关于n 所占存储空间的函数。

 

posted @ 2015-06-28 19:08  扬自己的调调  阅读(153)  评论(0编辑  收藏  举报