前言
近日压力倍增,在图书馆自习,期望能够看更多的论文。休息期间找到一本算法的教材,从机器学习和人工智能的角度重温了一遍数据结构与算法。
本科阶段曾学习过数据结构与算法这门课程,使用的是C语言实现的小绿书。依稀记得当时老师只是讲解了计算机程序中常见的数据结构,例如线性表,队列,栈等的存储方式以及增删查改的操作实现方法,并且给出了程序时间复杂度和空间复杂度的概念和分析方法。
很明确的一个概念:
program = data + algorithm
数据结构算法与机器学习
最近研究了很多机器学习相关的概念和算法,发现其的核心理念就是使用计算机模拟人类的学习方法,来处理数据。才发现其实数据结构与算法是机器学习的基础。
二者都是使用算法来处理数据,得到一些结果。
区别在于,机器学习的数据非此处的结构化数据,往往需要进行预处理和特征抽取;算法也是复杂得多的模型和训练算法,目的是为了进行预测。
总体来说,计算机的数据结构与算法,是机器学习的基础。
数据结构与算法的架构
本书将数据结构与算法分为八大思想,数据结构,数据查找和排序四大部分。其中,八大思想讲述了日常算法中常用的八种思想;数据结构体现了数据在计算机中的组织形式,包括物理形式和逻辑形式,给出了数据在计算机中存储和运算的基本方法;最后,查找和排序,是数据处理最常见的需求,也是最基本的算法。
组织形式如下:
- 算法思想
- 枚举
- 递归
- 递推
- 迭代
- 分治
- 贪心
- 试探
- 模拟
- 数据结构
- 基本结构
- 线性表
- 队列
- 栈
- 逻辑结构
- 树
- 二叉树
- 霍夫曼树
- 图
- 有向图
- 无向图
- 连通图
- 生成树
- 深度遍历
- 广度遍历
- 树
- 基本结构
- 查找
- 基于线性表的查找
- 基于树的查找
- 排序(图文详解八大排序算法)
- 交换排序
- 冒泡排序
- 快速排序
- 插入排序
- 希尔排序
- 选择排序
- 堆排序
- 归并排序
- 交换排序
相关思维导图如下图:
image
网友评论