数据结构与算法概述

科技   2024-11-30 14:50   上海  


数据结构与算法是信息技术的核心基础。掌握好这些基本知识,才能更好的使用信息技术,进而能设计好的软件。学习数据结构与算法可从如下思维导图开始:

数据结构与算法概述

  • 逻辑结构:数据的基本组成,一般可分为线性还是非线性。线性有明确的开头和结构,其元素有清晰的前后顺序关系。

  • 存储结构:结合实际存放数据的计算机存储空间来看。可以分为顺序、链式、散列、索引等结构。

  • 基本运算:要了解数据解耦的创建、清楚、元素CRUD,统计和复杂度评估

  • 算法详细:要特别掌握的两类算法就是递归与排序。递归的应用可简化程序设计,排序则是数据结构中不可缺少的组成部分。

数据结构

常见的数据结构有如下这些,在日常开发中常用。通常能够找到第三方库,学习时可自己动手写一个,然后与热门的流行第三方库对比,能有更好收获。如下分别介绍:


  • 队列


队列

  • 链表


链表

单向链表

双向链表

单向循环链表

双向循环链表

  • 数组


数组



  • 散列表


散列表

  • 红黑树


红黑树



排序算法

数据结构要支持快速元素的查找、修改、增加与删除,都需要排序。排序是最重要的算法。排序的目的是将无序变成有序。算法有很多,如下面介绍


排序


  • 冒泡


冒泡排序

  • 选择


选择排序

  • 插入


插入排序

  • 希尔








  • 归并


步骤一:拆分

步骤二:分别排序

步骤三:合并

  • 快速




初始化

第二步:转换为最大堆:叶子节点小于根节点

第三步:构建Max Heap

将根节点放到最后,并剔除,再进行第二步

  • 计数




















  • 基数





参考资料:

  1. MIT :https://ocw.mit.edu/

  2. DSA:https://www.geeksforgeeks.org/data-structures/?ref=shm



来自一口Linux公众号



Qt教程
致力于Qt教程,Qt技术交流,研发
 最新文章