(一)C语言中阶--概述

1. 什么是逻辑结构?逻辑结构有哪些?

数据元素之间的逻辑关系(抽象的)
集合结构(无关系)
线性结构(一对一)
树形结构(一对多)
图形结构(多对多)

2. 什么是存储结构?存储结构有哪些?

数据结构在计算机中的表示(具体的)

  • 顺序存储:
ABCDEF
地址adr+0adr+1adr+2adr+3adr+4adr+5
123456
下标012345

c语言表示:

int Array[6]={1,2,3,4,5,6}; // 定义数组并初始化
printf("%d\n",Array[3]);  // 随机访问第四个元素

【注】随机是任意到某一个元素,
到任何一个位置的时间复杂度是相等的

  • 链式存储:
Aadr+xBadr+yCadr+z
ABC

c语音实现:

// 定义一个结构体
typedef struct Lnode {
    ElemType data; // 存内容 ElemType任意类型
    struct Lnode *next; // next指向下一个Lnode节点
}Lnode, *LinkList;  // 别名Lnode 指针别名
Lnode *L;
// 动态申请空间大小
L=(LinkList)malloc(sizeof(Lnode));
A->next=B;
B->next=C;

【注】next如果有动向指向下一个节点,如果没有了为NULL

  • 索引存储
  • 散列存储
逻辑结构vs存储结构
优点可以实现随机存取,每个元素占用最少的空间充分利用所有存储单元,不会出现碎片现象
缺点只能使用整块的存储单元,会产生较多的碎片需要额外的存储空间用来存储下一个节点的指针,只能实现顺序存取
3. 时间复杂度核空间复杂度
  1. 算法定义
    对特定问题求解步骤的描述,成为算法。
    【特点】有穷、确定、可行、输入、输出。
  2. 时间复杂度
    def: 指所有语句的频度(执行次数)之和。
    T(n)=O(f(n));
    常见的时间复杂度:
    O(1)<O(log2n)<O(n)<O(nlog2n)<O(n^2)<O(n^3)<O(n^n)<O(n!);
    【a的x次方等于N,x=logaN,例如 3=log2(8)】
    最高阶越小,性能越好,1最优
    执行次数是固定的就是O(1),
    时间复杂度计算忽略高阶项系数和低阶项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y_努力_strive

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值