前言
近日壓力倍增,在圖書館自習(xí),期望能夠看更多的論文。休息期間找到一本算法的教材,從機(jī)器學(xué)習(xí)和人工智能的角度重溫了一遍數(shù)據(jù)結(jié)構(gòu)與算法。
本科階段曾學(xué)習(xí)過數(shù)據(jù)結(jié)構(gòu)與算法這門課程,使用的是C語言實現(xiàn)的小綠書。依稀記得當(dāng)時老師只是講解了計算機(jī)程序中常見的數(shù)據(jù)結(jié)構(gòu),例如線性表,隊列,棧等的存儲方式以及增刪查改的操作實現(xiàn)方法,并且給出了程序時間復(fù)雜度和空間復(fù)雜度的概念和分析方法。
很明確的一個概念:
program = data + algorithm
數(shù)據(jù)結(jié)構(gòu)算法與機(jī)器學(xué)習(xí)
最近研究了很多機(jī)器學(xué)習(xí)相關(guān)的概念和算法,發(fā)現(xiàn)其的核心理念就是使用計算機(jī)模擬人類的學(xué)習(xí)方法,來處理數(shù)據(jù)。才發(fā)現(xiàn)其實數(shù)據(jù)結(jié)構(gòu)與算法是機(jī)器學(xué)習(xí)的基礎(chǔ)。
二者都是使用算法來處理數(shù)據(jù),得到一些結(jié)果。
區(qū)別在于,機(jī)器學(xué)習(xí)的數(shù)據(jù)非此處的結(jié)構(gòu)化數(shù)據(jù),往往需要進(jìn)行預(yù)處理和特征抽?。凰惴ㄒ彩菑?fù)雜得多的模型和訓(xùn)練算法,目的是為了進(jìn)行預(yù)測。
總體來說,計算機(jī)的數(shù)據(jù)結(jié)構(gòu)與算法,是機(jī)器學(xué)習(xí)的基礎(chǔ)。
數(shù)據(jù)結(jié)構(gòu)與算法的架構(gòu)
本書將數(shù)據(jù)結(jié)構(gòu)與算法分為八大思想,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)查找和排序四大部分。其中,八大思想講述了日常算法中常用的八種思想;數(shù)據(jù)結(jié)構(gòu)體現(xiàn)了數(shù)據(jù)在計算機(jī)中的組織形式,包括物理形式和邏輯形式,給出了數(shù)據(jù)在計算機(jī)中存儲和運算的基本方法;最后,查找和排序,是數(shù)據(jù)處理最常見的需求,也是最基本的算法。
組織形式如下:
- 算法思想
- 枚舉
- 遞歸
- 遞推
- 迭代
- 分治
- 貪心
- 試探
- 模擬
- 數(shù)據(jù)結(jié)構(gòu)
- 基本結(jié)構(gòu)
- 線性表
- 隊列
- 棧
- 邏輯結(jié)構(gòu)
- 樹
- 二叉樹
- 霍夫曼樹
- 圖
- 有向圖
- 無向圖
- 連通圖
- 生成樹
- 深度遍歷
- 廣度遍歷
- 樹
- 基本結(jié)構(gòu)
- 查找
- 基于線性表的查找
- 基于樹的查找
- 排序(圖文詳解八大排序算法)
- 交換排序
- 冒泡排序
- 快速排序
- 插入排序
- 希爾排序
- 選擇排序
- 堆排序
- 歸并排序
- 交換排序
相關(guān)思維導(dǎo)圖如下圖:
