第一章(问题总结)

来源:互联网 发布:java怎么保留四位小数 编辑:程序博客网 时间:2024/06/05 17:52

一、时间复杂度

例:

for(i=1;i<=n;++i)  for(j=1;j<=i-1;++j)    ++x;
解:++x是基本语句,执行次数为:

∑_(i=1)^n ∑_(j=1)^(i-1)▒1=∑_(i=1)^n▒〖(i-1)〗=((1+n-1)*(n-1))/2=(n(n-1))/2,所以时间复杂度为O(n^2)。分析的策略是从内部(或最深沉部分)向外展开。


常见的时间复杂度如下:

O(log_2⁡n)<O(n)<O(n*log_2⁡n)<O(n^2)<O(n^3)<。。。<O(2^n)<O(n!)

用大O记号表示算法的时间复杂度,需要将低次幂去掉,将高次幂的系数去掉。


求解算法的时间复杂度的具体步骤如下:

(1)找出算法中的基本语句。

(2)计算基本语句的执行次数的数量级。

(3)用大O记号表示算法的时间性能。


二、数据结构、数据类型和抽象数据类型

(1)数据结构通常反映数据的内部构成,即数据由哪些数据元素构成,以什么方式构成,数据元素之间呈现什么关系。

(2)数据类型是一组值的集合以及定义于这个值集上的一组操作的总称,数据类型规定了该类型数据的取值范围和所能采取的操作。

(3)抽象数据类型是一个数据结构以及定义在该结构上的一组操作的总称,可理解为对数据类型的进一步抽象。


三、逻辑结构与存储结构

数据结构是指相互之间存在一定关系的数据元素的集合。按照视点不同,数据结构分为逻辑结构和存储结构。

数据的逻辑结构是指数据元素之间逻辑关系的整体。数据的逻辑结构属于用户视图,是面向问题的,反映了数据内部的构成方式。

(1)逻辑结构与数据元素本身的形式、内容无关。

(2)逻辑结构与数据元素的相对位置无关。

(3)逻辑结构与所含数据元素的个数无关。

(4)逻辑结构与数据的存储无关,它是独立于计算机的。

逻辑结构是数据组织的主要方面。数据的存储结构是数据及其逻辑结构在计算机中的表示,换言之,存储结构除了存储数据元素之外,必须能隐式或显式地表示数据元素之间的逻辑关系。数据的存储结构属于具体实现的视图,是面向计算机的,其基本目标是将数据及其逻辑关系存储到计算机的内存中。






原创粉丝点击