数据结构 第1章 绪论(一轮习题总结)

本文详细讲解了数据结构基础,包括抽象数据类型、哈希表和循环队列,以及递归算法的复杂度分析和双循环时间复杂度的探讨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 数据结构的基本概念(1 3 4 6 7)
1.2 算法和算法评价(9 13)

1.1 数据结构的基本概念

  • T1
    一个完整的数据结构:抽象数据类型ADT,用三元组(数据对象,数据类型,基本操作集)表示
  • T3 / T4
    哈希表:既有逻辑结构,又有存储结构。
    循环队列(易错点):既有逻辑结构,又有存储结构。是用顺序表表示的队列。
  • T6
    存储数据:数据的值+数值元素之间的关系
    关系:同属一个集合(集合)一对一(线)、一对多(树)、多对多(图/网)
  • T7
    链式存储:结点间不一定连续,结点内一定连续

1.2 算法和算法评价

  • T8
    (补充)递归算法的复杂度分析:可以画出递归树/执行树,根据树的结点进行计算
    eg:斐波那契函数f(7) —>20+21+…+26(27-1)—>时间复杂度为O(2n)
  • T9
    两链表合并,比较次数m+n < 2max(m, n),时间复杂度O(max(m, n))
  • T10 / T6 / T13
    双循环的时间复杂度分析(三种,个人总结欢迎补充)
    T10 第1种:i和j只与n有关,分别计算相乘
    时间复杂度:O(nlogn)
    for(i=1; i<=n ;i*=2)
    	for(j=1; j<=n; j++)
    
    T6 第2种:j和i有关,i正常+1增长,逐层分析j循环
    时间复杂度:O(n2)
    for(i=1; i<=n; i++)
    	for(j=1; j<=i*2; j++)
    
    T13 第3种(难点):j和i有关,i不正常增长,可借用辅助设i循环k次,计算n和k的表达式
    时间复杂度:O(n)
    for(i=i=1; i<=n; i*2)
    	for(j=1; j<=i; j++)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值