ref:https://github.com/nonstriater/Learn-Algorithms
C++语言刷题基础
数据结构及算法基础
经典算法
算法使用实例
阅读经典书籍及分享
加入算法学习社区,互相鼓励学习
刷题实践
todo
todo
把所有经典算法写一遍
链表
双向链表
散列函数
碰撞解决
排序
查找
BF算法
KMP算法
BM算法
正则表达式
数据压缩
二叉树
二叉查找树
伸展树(splay tree 分裂树)
平衡二叉树AVL
红黑树
B树,B+,B*
R树
Trie树(前缀树)
后缀树
最优二叉树(赫夫曼树)
二叉堆 (大根堆,小根堆)
二项树
二项堆
斐波那契堆(Fibonacci Heap)
图的存储结构和基本操作(建立,遍历,删除节点,添加节点)
最小生成树
拓扑排序
关键路径
最短路径: Floyd,Dijkstra,bellman-ford,spfa
交换排序算法
冒泡排序
插入排序
选择排序
希尔排序
快排
归并排序
堆排序
线性排序算法
顺序表查找:顺序查找
有序表查找:二分查找
分块查找: 块内无序,块之间有序;可以先二分查找定位到块,然后再到块中顺序查找
动态查找: 二叉排序树,AVL树,B- ,B+ (这里之所以叫 动态查找表,是因为表结构是查找的过程中动态生成的)
哈希表: O(1)
Hash
快速排序
快递选择SELECT
BFS/DFS (广度/深度优先遍历)
红黑树 (一种自平衡的二叉查找树)
KMP 字符串匹配算法
DP (动态规划 dynamic programming)
A*寻路算法: 求解最短路径
Dijkstra:最短路径算法 (八卦下:Dijkstra是荷兰的计算机科学家,提出”信号量和PV原语“,”解决哲学家就餐问题”,”死锁“也是它提出来的)
遗传算法
启发式搜索
图像特征提取之SIFT算法
傅立叶变换
SPFA(shortest path faster algorithm) 单元最短路径算法
Hash映射/分而治之
Bitmap
Bloom filter(布隆过滤器)
Trie树
数据库索引
倒排索引(Inverted Index)
双层桶划分
外排序
simhash算法
分布处理之Mapreduce
迭代法
穷举搜索法
递推法
动态规划
贪心算法
回溯
分治算法
这是一个算法题目合集,题目是我从网络和书籍之中整理而来,部分题目已经做了思路整理。问题分类包括:
字符串
堆和栈
链表
数值问题
数组和数列问题
矩阵问题
二叉树
图
海量数据处理
智力思维训练
系统设计
还有部分来自算法网站和书籍:
看算法使用有关源码
YYCache
cocos2d-objc
…
《剑指offer》
《编程之美》
《编程之法:面试和算法心得》
《算法谜题》 都是思维题
《编程珠玑》Programming Pearls
《编程珠玑(续)》
《数据结构与算法分析》
《Algorithms》 这本近千页的书只有6章,其中四章分别是排序,查找,图,字符串,足见介绍细致
《算法设计与分析基础》
《算法引论》 告诉你如何创造算法 断货
《Algorithm Design Manual》算法设计手册 红皮书
《算法导论》 是一本对算法介绍比较全面的经典书籍
《Algorithms on Strings,Trees and Sequences》
《Advanced Data Structures》 各种诡异高级的数据结构和算法 如元胞自动机、斐波纳契堆、线段树 600块
《深入理解计算机系统》
《TCP/IP详解三卷》
《UNIX网络编程二卷》
《UNIX环境高级编程:第2版》
《The practice of programming》 Brian Kernighan和Rob Pike
《writing efficient programs》 优化
《The science of programming》 证明代码段的正确性 800块一本
《数学建模十大经典算法》
《数据挖掘领域十大经典算法》
《十道海量数据处理面试题》
《数字图像处理领域的二十四个经典算法》
《精选微软等公司经典的算法面试100题》
The-Art-Of-Programming-By-July
http://sjjg.js.zwu.edu.cn/SFXX/sf1/sfys.html
http://www.cs.usfca.edu/~galles/visualization/Algorithms.html
高级数据结构和算法 北大教授张铭老师在coursera上的课程。完成这门课之时,你将掌握多维数组、广义表、Trie树、AVL树、伸展树等高级数据结构,并结合内排序、外排序、检索、索引有关的算法,高效地解决现实生活中一些比较复杂的应用问题。当然coursera上也还有很多其它算法方面的视频课程。
算法设计与分析 Design and Analysis of Algorithms 由北大教授Wanling Qu在coursera讲授的一门算法课程。首先介绍一些与算法有关的基础知识,然后阐述经典的算法设计思想和分析技术,主要涉及的算法设计技术是:分治策略、动态规划、贪心法、回溯与分支限界等。每个视频都配有相应的讲义(pdf文件)以便阅读和复习。