原本计划在假期中总结完,结果速度太悠哉了,至今没整理完 。
"是否具有算法知识与技术的坚实基础是区分真正熟练的程序员与初学者的一个特征(《算法导论》)". Charles Leiserson教授在MIT算法导论第一堂课说的:“如果你想成为一个编程高手,只要两年中每天坚持编程,你就能成为编程高手。如果你想成为一名世界级的程序员,你既可以十年如一日每天坚持编程,也可以两年中每天编程,然后上一门算法课”。依然是记忆犹新,同时也在一直提醒着我算法的重要性。
以下是**程序算法艺术与实践**内容博文的索引:***(待定未完待续)***
1. 预备知识
- [有关算法的基本概念](http://blog.csdn.net/songzitea/article/details/46057403)
- [函数的渐近的界 ](http://blog.csdn.net/songzitea/article/details/47668991)
分治/递归策略(Divide and Conquer)
- [分治/递归的基本思想](http://blog.csdn.net/songzitea/article/details/48468733)
- [递归循环与迭代](http://blog.csdn.net/songzitea/article/details/48498119)
- [Fibonacci数列](http://blog.csdn.net/songzitea/article/details/47669689)
- [矩阵相乘问题](http://blog.csdn.net/songzitea/article/details/47669533)
动态规划(Dynamic Programming)
- DP设计思想
- 经典应用:投资问题
- 经典应用:背包问题(Knapsack Problem)
- 经典应用:最长公共子序列LCS
贪心法(Greedy Approach)
- GA设计思想
- 关于GA的正确性证明
- 经典应用:哈夫曼Huffman编码问题
- 经典应用:最小生成树(Prme算法与KMP算法)
- 经典应用:单源最短路径(Dijkstra算法)
NP完全问题
近似算法
随机算法
在线算法
遗传算法
模拟退火算法
蚁群算法
**经典排序算法**
1.
[插入排序(Insertion Sort)](http://blog.csdn.net/songzitea/article/details/48498019)
1. [桶排序(Bucket Sort)](http://blog.csdn.net/songzitea/article/details/47124461)
1. 冒泡排序(Bubble Sort**)
1. 快速排序(Quick Sort)
1. 归并排序(Merge Sort)
1. 堆积排序(Heap Sort)
1. 选择排序(Selection sort)
**参考资料**
1.
Donald E.Knuth 著,苏运霖 译,《计算机程序设计艺术,第1卷基本算法》,国防工业出版社,2002年
1.
Donald E.Knuth 著,苏运霖 译,《计算机程序设计艺术,第2卷半数值算法》,国防工业出版社,2002年
1.
Donald E.Knuth 著,苏运霖 译,《计算机程序设计艺术,第3卷排序与查找》,国防工业出版社,2002年
1.
Thomas H. Cormen, Charles E.Leiserson, etc., Introduction to Algorithms(3rd edition), McGraw-Hill Book Company,2009
1.
Jon Kleinberg, Ėva Tardos, Algorithm Design, Addison Wesley, 2005.
1.
Sartaj Sahni ,《数据结构算法与应用:C++语言描述》 ,汪诗林等译,机械工业出版社,2000.
1.
屈婉玲,刘田,张立昂,王捍贫,算法设计与分析,清华大学出版社,2011年版,2013年重印.
1.
张铭,赵海燕,王腾蛟,《数据结构与算法实验教程》,高等教育出版社,2011年 1月
1.
王晓东,《算法设计与分析》 ,清华大学出版社,2003年1月。
**参考网站**
1.
MIT 的《算法导论》(有OCW链接)[http://stellar.mit.edu/S/course/6/sp13/6.006/](http://stellar.mit.edu/S/course/6/sp13/6.006/)
1.
Stanford 算法[ https://www.coursera.org/course/algo](https://www.coursera.org/course/algo)
1.
Princeton 算法课 [https://www.coursera.org/course/algs4partI](https://www.coursera.org/course/algs4partI)
1. Berkeley《数据结构》 [http://www.cs.berkeley.edu/~jrs/61b/](http://www.cs.berkeley.edu/%7Ejrs/61b/)
1.
Web 上的术语资源[http://www.nist.gov/dads/](http://www.nist.gov/dads/)
1.
Algorithms in the Real World[ http://www.cs.cmu.edu/~guyb/realworld.html](http://www.cs.cmu.edu/%7Eguyb/realworld.html)
1.
Advanced Data Structures and Algorithms[ http://theory.stanford.edu/~rajeev/cs361.html](http://theory.stanford.edu/%7Erajeev/cs361.html)
1.
Advanced Data Structures[ http://www.cs.biu.ac.il/~moshe/ds1.html](http://www.cs.biu.ac.il/%7Emoshe/ds1.html)
1.
CS 2015 Grad Algorithms, Spring [2015 http://people.cs.pitt.edu/~kirk/cs2150/](http://people.cs.pitt.edu/~kirk/cs2150/)
1.
哈工大《算法设计与分析之入门篇》[http://mooc.study.163.com/course/HIT-1000002012#/info](http://mooc.study.163.com/course/HIT-1000002012#/info)
1.
哈工大《算法设计与分析之进阶篇》[http://mooc.study.163.com/course/HIT-1000005000#/info](http://mooc.study.163.com/course/HIT-1000005000#/info)
1.
《数据结构与算法》精品课程 [http://www.jpk.pku.edu.cn/pkujpk/course/sjjg](http://www.jpk.pku.edu.cn/pkujpk/course/sjjg)
关于[程序算法艺术与实践](http://blog.csdn.net/column/details/tac-programalgrithm.html)更多讨论与交流,敬请关注本博客和新浪微博[songzi_tea](http://weibo.com/songzitea).
- 前言
- 螺旋矩阵、螺旋队列算法
- 程序算法艺术与实践:稀尔排序、冒泡排序和快速排序
- Josephu 问题:数组实现和链表实现
- 杨辉三角形算法
- 位图排序
- 堆排序的实现
- Juggling算法
- 【编程珠玑】排序与位向量
- 取样问题
- 变位词实现
- 随机顺序的随机整数
- 插入排序
- 二分搜索
- 产生不重复的随机数
- 约瑟夫环解法
- 快速排序
- 旋转交换或向量旋转
- 块变换(字符反转)
- 如何优化程序打印出小于100000的素数
- 基本的排序算法原理与实现
- 利用马尔可夫链生成随机文本
- 字典树,后缀树
- B-和B+树
- 程序算法艺术与实践引导
- 程序算法艺术与实践:基础知识之有关算法的基本概念
- 程序算法艺术与实践:经典排序算法之桶排序
- 程序算法艺术与实践:基础知识之函数的渐近的界
- 程序算法艺术与实践:递归策略之矩阵乘法问题
- 程序算法艺术与实践:递归策略之Fibonacci数列
- 程序算法艺术与实践:递归策略基本的思想
- 程序算法艺术与实践:经典排序算法之插入排序
- 程序算法艺术与实践:递归策略之递归,循环与迭代