数据结构与算法是信息技术的核心基础。掌握好这些基本知识,才能更好的使用信息技术,进而能设计好的软件。学习数据结构与算法可从如下思维导图开始:
数据结构与算法概述
逻辑结构:数据的基本组成,一般可分为线性还是非线性。线性有明确的开头和结构,其元素有清晰的前后顺序关系。
存储结构:结合实际存放数据的计算机存储空间来看。可以分为顺序、链式、散列、索引等结构。
基本运算:要了解数据解耦的创建、清楚、元素CRUD,统计和复杂度评估
算法详细:要特别掌握的两类算法就是递归与排序。递归的应用可简化程序设计,排序则是数据结构中不可缺少的组成部分。
数据结构
常见的数据结构有如下这些,在日常开发中常用。通常能够找到第三方库,学习时可自己动手写一个,然后与热门的流行第三方库对比,能有更好收获。如下分别介绍:
栈
栈
队列
队列
链表
链表
单向链表
双向链表
单向循环链表
双向循环链表
数组
数组
树
树
堆
堆
散列表
散列表
红黑树
红黑树
图
图
排序算法
数据结构要支持快速元素的查找、修改、增加与删除,都需要排序。排序是最重要的算法。排序的目的是将无序变成有序。算法有很多,如下面介绍
排序
冒泡
冒泡排序
选择
选择排序
插入
插入排序
希尔
归并
步骤一:拆分
步骤二:分别排序
步骤三:合并
快速
堆
初始化
第二步:转换为最大堆:叶子节点小于根节点
第三步:构建Max Heap
将根节点放到最后,并剔除,再进行第二步
计数
桶
基数
参考资料:
MIT :https://ocw.mit.edu/
DSA:https://www.geeksforgeeks.org/data-structures/?ref=shm
来自一口Linux公众号