数据结构与算法

前言

近日压力倍增,在图书馆自习,期望能够看更多的论文。休息期间找到一本算法的教材,从机器学习和人工智能的角度重温了一遍数据结构与算法。

本科阶段曾学习过数据结构与算法这门课程,使用的是C语言实现的小绿书。依稀记得当时老师只是讲解了计算机程序中常见的数据结构,例如线性表,队列,栈等的存储方式以及增删查改的操作实现方法,并且给出了程序时间复杂度和空间复杂度的概念和分析方法。
很明确的一个概念:

1
program = data + algorithm

数据结构算法与机器学习

最近研究了很多机器学习相关的概念和算法,发现其的核心理念就是使用计算机模拟人类的学习方法,来处理数据。才发现其实数据结构与算法是机器学习的基础。
二者都是使用算法来处理数据,得到一些结果。
区别在于,机器学习的数据非此处的结构化数据,往往需要进行预处理和特征抽取;算法也是复杂得多的模型和训练算法,目的是为了进行预测。
总体来说,计算机的数据结构与算法,是机器学习的基础。

数据结构与算法的架构

本书将数据结构与算法分为八大思想,数据结构,数据查找和排序四大部分。其中,八大思想讲述了日常算法中常用的八种思想;数据结构体现了数据在计算机中的组织形式,包括物理形式和逻辑形式,给出了数据在计算机中存储和运算的基本方法;最后,查找和排序,是数据处理最常见的需求,也是最基本的算法。
组织形式如下:

  • 算法思想
    • 枚举
    • 递归
    • 递推
    • 迭代
    • 分治
    • 贪心
    • 试探
    • 模拟
  • 数据结构
    • 基本结构
      • 线性表
      • 队列
    • 逻辑结构
        • 二叉树
        • 霍夫曼树
        • 有向图
        • 无向图
        • 连通图
        • 生成树
        • 深度遍历
        • 广度遍历
  • 查找
    • 基于线性表的查找
    • 基于树的查找
  • 排序(图文详解八大排序算法)
    • 交换排序
      • 冒泡排序
      • 快速排序
    • 插入排序
      • 希尔排序
    • 选择排序
      • 堆排序
    • 归并排序

相关思维导图如下图:
image

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器