数据结构与算法学习记录-Day3

最好、最坏和平均时间复杂度

与输入实例有关

一般考虑最坏情况下的时间复杂度

对于复杂的算法,可以把它分成几个容易估算的部分,然后利用O 的加法法则和乘法法则来计算:

加法法则

乘法法则

1.4.4 算法的空问复杂度

S(n) = O(f (n))

算法要占据的空间=算法本身占据的空间+算法使用的辅助空间

【例】数组逆序,将一维数组a中的n个数逆序存放到原数组中。

t即做辅助空间

S(n)=O(1) 原地工作

S(n)=O(n)

附:章末习题

习题

1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。

学生信息表 是 线性结构  链式储存结构

3.简述逻辑结构的四种基本关系并画出它们的关系图。

 

4.存储结构由哪两种基本的存储方法实现?

顺序 链式

5.选择题

(1)在数据结构中,从逻辑上可以把数据结构分成( C  )。

A.动态结构和静态结构     B.紧凑结构和非紧凑结构

C.线性结构和非线性结构   D.内部结构和外部结构

(2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的( C  )。

A.存储结构               B.存储实现

C.逻辑结构               D.运算实现

(3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着( B  )。

   A.数据具有同一特点

B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致

C.每个数据元素都一样

D.数据元素所包含的数据项的个数要相等

(4)以下说法正确的是( D  )。

A.数据元素是数据的最小单位

B.数据项是数据的基本单位

C.数据结构是带有结构的各数据项的集合

D.一些表面上很不相同的数据可以有相同的逻辑结构

5以下与数据的存储结构无关的术语是( C  )。

A.顺序队列       B. 链表        C. 有序表          D.  链栈

(6)以下数据结构中,( A )是非线性数据结构

A.树        B.字符串       C.队           D.栈

6.试分析下面各程序段的时间复杂度。

(1)x=90; y=100; 

while(y>0)

if(x>100)

 {x=x-10;y--;}

else x++;

T(n)=O(10)  1O1  常数阶均记为1

(2)for (i=0;  i<n; i++)

for (j=0; j<m; j++)

a[i][j]=0;

T(n)=O(n*m)

(3)s=0;

     For( i=0; i<n; i++)

for(j=0; j<n; j++)

         s+=B[i][j];

sum=s;

T(n)=O(n^2)

4i=1;

     while(i<=n)

        i=i*3;

T(n)=O(lgn)

(5)x=0;

for(i=1; i<n; i++)   n

   for (j=1; j<=n-i; j++)  j—>n-1

x++;

T(n)=O(n^2)

(6)x=n; //n>1

y=0;

while(x≥(y+1)* (y+1))

    y++;

T(n)=O(n^1/2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值