00、数据结构绪论
创始人
2025-05-30 15:46:13
0

00、数据结构绪论

数据是信息的载体

数据元素:每一个个体,往下拆分是不可分割的数据项。

数据对象:具有相同数据类型的数据元素构成数据对象。

数据结构:关心个体之间的关系,不同数据对象也有组成相似的数据结构。

1、数据三要素

  1. 逻辑结构:
    1. 集合
    2. 线性
    3. 树形
    4. 图状
  2. 数据的运算
  3. 存储结构:物理层面如何实现
    1. 顺序(数组)-物理上也是相连
    2. 链式-散列在内存当中,前后关系通过指针
    3. 散列-
    4. 索引-关键字作为索引表当中的关键字

运算的定义是根据逻辑结构,指运算的功能。

运算的实现需要的是物理层面如何实现。

2、算法

简述:对数据的一系列操作,是求解问题的步骤。

  1. 有穷性,有限个步骤内解决问题。
  2. 确定性:相同的输入有相同的输出。
  3. 有输入和输出。

好算法的特征:

  1. 正确性:可以正确的解决问题,并且无歧义
  2. 健壮性:在非法输入的时候,做出反应
  3. 时间复杂度和空间复杂度小

3、时间复杂度

算法效率的度量。

  1. 忽略顺序执行的代码,找到关键语句和基本操作,找出和问题规模n之间的关系。
  2. 如果是多层循环,只要关心最深层当中的循环执行了多少次。
  3. 算法执行时间和输入数据有很大关系,但是我们一般只考虑最坏和平均的时间复杂度。
  4. 时间复杂度是计算机科学中描述算法运行所需计算机时间的一种计算复杂度。通常通过计算算法执行的基本操作次数来估计时间复杂度,假设每个基本操作需要固定的时间来执行1。理解算法的时间复杂度可以帮助程序员选择最适合他们需求的算法2。

4、空间复杂度

空间复杂度是指算法在运行过程中临时占用存储空间大小的量度

  1. 算法运行时新开辟的辅助空间和问题规模n之间的关系
  2. 如果O(1)的话,程序原地工作
  3. 只需要关心数量级
  4. 计算空间复杂度:
    1. 新开辟的内存空间
    2. 如果递归函数内容相同,则为递归函数所调用的深度

相关内容

热门资讯

【十二天学java】day04... 第一章 流程控制语句 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影...
Redis(十):主从模式 前言 上一篇介绍了 Redis 应对并发问题的方案。这节开始介绍 Redis 的主从模式。 由于 R...
C指针:程序员的望远镜 C指针:程序员的望远镜一、什么是指针1.1 指针的定义1.2 指针和普通变量的区别1....
牛客网Java面试题及答案整理... 学习如逆水行舟,尤其是 IT 行业有着日新月异的节奏,我们更要抓紧每一次...
江西宜春智慧停车欠费清缴享7折... 极目新闻记者 杜光然 近日,江西网友发视频称,宜春智慧停车公司开启了端午缴费特惠活动,车主享停车费7...
律数科技申请基于区块链的小额金... 金融界2025年5月31日消息,国家知识产权局信息显示,北京律数科技有限公司申请一项名为“一种基于区...
好用的5款国产低代码平台介绍 一、云程低代码平台 云程低代码平台是一款基于springboot、vue.js技术的企业级低代码...
【数据结构第三章】- 队列 目录 一、队列的定义和特点 二、循环队列 2.1 - CircularQueue.h 2.2 - C...
如何将pdf文件压缩?pdf压... PDF是一种常见的文档格式,因为包括文本格式和图像,我们往往采用这种格式...
0X30数学知识 - 质数 定义: 若一个正整数无法被除了1和它自身之外的任何自然数整除,则称该数...