基礎算法:
- 數據結構與算法分析:C語言描述
- 程序員代碼面試指南——IT名企算法與數據結構題目最優解
- 算法設計與分析基礎 (Ananny Levitin著)
- 算法(Robert著 第四版)
- 編程原本
- 算法導論
- 算法技術手冊
- 算法設計(王紅梅編著 一本學校教材)
- 零散網絡流傳的文檔
基礎數學:
- 概率論與數理統計
- 離散數學及其應用
- 統計學的世界
- 統計學完全教程
- 線性代數及其應用
- 線性代數應該這樣學
基礎算法隨想(也是《算法》的框架介紹)
1、基礎(代碼工具、算法基礎工具)
掌握實現、分析和比較算法的基本原則和方法:
- Java編程模型
- 數據抽象
- 基本數據結構
- 集合類的抽象數據類型
- 算法性能分析的方法
- 案例分析
2、排序(很多算法的基礎)
有序的重新排列一個序列中的元素是非常重要的基礎算法,排序算法也是很多其他算法的基石
- 插入排序
- 選擇排序
- 希爾排序
- 快速排序
- 歸並排序
- 堆排序
- 與排序相關的問題(優先隊列、選舉、歸並)
3、查找(Find it or Index it!!!)
從BIG數據集中找到指定的條目是非常重要的。
- 二叉查找樹
- 平衡查找樹
- 散列表
- 方法之間的關系和性能對比
4、圖(圖,算法王者)
圖的主要內容是對象和它們之間的連接,連接可能有權重和方向。利用圖可以為大量重要而困難的問題建模。圖算法的設計非常重要。
- 深度優先搜索
- 廣度優先搜索
- 連通性問題
- Kruskal和Prim最小生成樹
- Dijkstra和Bellman-Ford最短路徑算法
5、字符串(不得不喝人打交道並進行數值化處理)
字符串是現代應用程序中的重要數據類型。
- 字符串鍵的排序和查找的快速算法
- 子字符串查找
- 正則表達式模式匹配算法
- 數據壓縮算法
6、背景 (Biger逼格)
- 科學計算簡介
- 運籌學簡介
- 計算理論簡介
- 基於實踐的模擬
- B樹
- 后綴數組
- 最大流量問題
- 搜索問題、問題轉化、NP完全性
目標:理解精巧、復雜和高難度算法,熟悉優雅、朴素和簡單的算法。進行算法式思考。