我是靠谱客的博主 诚心乐曲,最近开发中收集的这篇文章主要介绍数据结构1——简单描述,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 数据结构概述
    • 算法
    • 预备知识
    • 学习大纲

数据结构概述

在这里插入图片描述

  • 定义:
    • 我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构(个体和个体关系)保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找/删除某个元素、排序等)而执行的相应操作,这个相应的操作也叫算法。
    • 数据结构 = 个体 + 个体关系
    • 算法 = 对存储数据的操作

算法

  • 解题的方法和步骤。
  • 衡量算法的标准:
    • 1.时间复杂度

      • 大概程序要执行的次数,而非执行的时间(因为不同机器执行时间不一样)

      “算法复杂度”——其实并没有那么复杂

    • 2.空间复杂度

      • 算法执行过程中大概所占用的最大内存
    • 3.难易程度

    • 4.健壮性

预备知识

  • 指针
    • 引入概念:地址

      • 定义:内存单元的编号,从0开始的非负整数。
      • CPU能够直接访问内存,CPU与内存靠三根线连接,地址线(确定单元编号)、控制线(控制是写入还是输出)和数据线(数据传输)
    • 指针就是地址,指针变量是存放内存单元地址的变量。

    • 指针本质就是一个操作受限的非负整数。

    • 指针的分类:

      • 基本类型的指针
      • 指针和数组的关系
    • 指针案例:

      • 如何通过被调函数修改主调函数的中局部变量的值(传参:存放该局部变量的指针变量&+变量名;接收参数:传递参数的变量类型的地址值数据,eg:int * i);
      • 如何通过被调函数修改主调函数中一维数组的内容(传参:①存放数组首元素的指针变量,②存放数组长度的整型变量。tips:p[i]等同于*(p+i))。
      • 无论是什么类型的变量(包括指针变量),以&+变量名(即地址)作为实参,都可以改写变量值。

在这里插入图片描述

  • 结构体
    在这里插入图片描述在这里插入图片描述

    • 为什么会出现结构体
      • 为了表示一些复杂的数据,普通的基本类型变量无法满足要求。
    • 什么叫结构体
      • 是类的过渡,结构体即只有属性没有方法的类。
      • 用户根据实际需求自己定义的复合数据类型。
    • 如何使用结构体
      在这里插入图片描述在这里插入图片描述
    • 注意事项
      • 结构体变量不能加减乘除,但可以相互赋值;
      • 普通结构体变量和结构体指针变量作为函数传参的问题(使用指针传参有效节约内存,提升速度)。
  • 动态内存的分配和释放
    在这里插入图片描述在这里插入图片描述

学习大纲

  • 模块一:线性结构
    • 连续存储(数组)
      • 优点:存取速度快。
      • 缺点:事先要先知道数组长度,插入删除元素慢,空间通常有限制(大块连续内存)。
    • 离散存储(链表)
      • 优点:空间没有限制,插入删除元素慢。
      • 缺点:存取速度慢。
    • 线性结构的两种常见应用之一:栈
    • 线性结构的两种常见应用之二:队列
    • 专题:递归
  • 模块二:非线性结构
  • 模块三:查找和排序
    • 折半查找
    • 排序
      • 冒泡
      • 选择
      • 插入
      • 快速排序
      • 归并排序

最后

以上就是诚心乐曲为你收集整理的数据结构1——简单描述的全部内容,希望文章能够帮你解决数据结构1——简单描述所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部