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