转自:算法虐我千百遍,我待算法如初恋

算法虐我千百遍,我待算法如初恋。

学习方法 
1) 把所有经典算法写一遍 
2) 看算法源码 
3) 加入算法学习社区,相互鼓励学习 
4) 看经典书籍

基本数据结构和算法 
这些算法全部自己敲一遍:

二叉树 
二叉树 
二叉查找树 
Trie树(前缀树) 
后缀树 
最优二叉树(赫夫曼树) 
伸展树(splay tree 分裂树) 
平衡二叉树AVL 
红黑树 
B树(B-),B+,B* 
R树

二叉堆 (大根堆,小根堆) 
二项树 
二项堆 
斐波那契堆(Fibonacci Heap)

哈希表/散列表 (Hash Table) 
字符串算法 
BF算法 
KMP算法 
BM算法

图的算法 
图的存储结构和基本操作(建立,遍历,删除节点,添加节点) 
最小生成树 
拓扑排序 
关键路径 
最短路径: Floyd,Dijkstra,bellman-ford,spfa

排序算法 
交换排序算法 
插入排序 
选择排序 
希尔排序 
堆排序 
快排 
归并排序 
线性排序算法基数排序

查找算法 
顺序表查找:顺序查找 
有序表查找:二分查找 
分块查找: 块内无序,块之间有序;可以先二分查找定位到块,然后再到块中顺序查找 中使用顺序查找(这里之所以叫动态查找表,是因为表结构是查找的过程中动态生成的) 
动态查找: 二叉排序树,AVL树,B- ,B+ 
哈希表: O(1)

15个经典基础算法 
A*寻路算法: 求解最短路径 Dijkstra:最短路径算法 (八卦下:Dijkstra是荷兰的计算机科学家,提出”信号量和PV原语“,”解决哲学家就餐问题”,”死锁“也是它提出来的) 
DP (动态规划 dynamic programming) 
BFS/DFS (广度/深度优先遍历) 
红黑树 (一种自平衡的二叉查找树) 
KMP 字符串匹配算法 
遗传算法 
启发式搜索 
图像特征提取之SIFT算法 
傅立叶变换 
Hash 
快速排序 
SPFA(shortest path faster algorithm) 单元最短路径算法 
快递选择SELECT

算法设计思想 
为了更简洁的形式设计和藐视算法,在算法设计时又常常采用递归技术,用递归描述算法。

迭代法 
穷举搜索法 
递推法 
动态规划 
贪心算法 
回溯 
分治算法

http://www.chinaunix.net/old_jh/23/437639.html

推荐阅读 
刷题必备 
《剑指offer》 
《编程之美》 
《编程珠玑》Programming Pearls 偏算法理论 
《编程珠玑(续)》 
《More Programming Pearls》 偏算法轶事

《数据结构与算法分析》 
《算法设计与分析基础》 
《算法导论》 告诉你有哪些算法 
《算法引论》 告诉你如何创造算法 断货

侧重经典算法的实现 
《Elements of Programming》 STL代码 快 准 狠 ,写出的代码可以上层次 
《C interfaces and Implementation》 
《The practice of programming》 Brian Kernighan和Rob Pike

《微软的梦工厂》 
《Language Implementatin patterns》 
《Algorithms on Strings,Trees and Sequences》

《writing efficient programs》 优化

《Algorithm Design Manual》 红皮书

《The science of programming》 证明代码段的正确性 800块一本

高级数据结构(如元胞自动机、斐波纳契堆、线段树)

《Algorithms》 4版 
《Advanced Data Structures》 各种诡异数据结构和算法 600块

《深入理解计算机系统》 
《TCP/IP详解三卷》 
《UNIX网络编程二卷》 
《UNIX环境高级编程:第2版》

参考链接和学习网站 
* @ July 博客《二之再续、Dijkstra 算法+fibonacci堆的逐步c实现》* 
《数学建模十大经典算法》 
《数据挖掘领域十大经典算法》 
《十道海量数据处理面试题》 
《数字图像处理领域的二十四个经典算法》 
《精选微软等公司经典的算法面试100题》

微软面试100题http://blog.csdn.net/column/details/ms100.html 
程序员编程艺术http://blog.csdn.net/v_JULY_v/article/details/6460494

https://github.com/julycoding/The-Art-Of-Programming-By-July算法题集合 
https://github.com/activesys/libcstl通用数据结构和算法库 
https://github.com/nonstriater/Learn-Algorithm算法小组

贝叶斯: 
1. 阮一峰总结的这两篇《贝叶斯推断及其互联网应用》 
《贝叶斯推断及其互联网应用》 
《贝叶斯推断及其互联网应用》 
2. 算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification) 
http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html 
3. 朴素贝叶斯(NB,Naive Bayes)简介 
http://home.cnblogs.com/group/topic/40112.html 
4. 数学之美番外篇:平凡而又神奇的贝叶斯方法 
http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/

这4部分看完后,就能自己推贝叶斯、朴素贝叶斯,还能了解各种常见概率、集合论等,实际上对应用贝叶斯已经可以打好基础了。

MYSQL 背后的数据结构和算法 http://blogread.cn/it/article/4088?f=wb2

基本算法演示 
http://sjjg.js.zwu.edu.cn/SFXX/sf1/sfys.html 
http://www.cs.usfca.edu/~galles/visualization/Algorithms.html

编程网站 
http://oj.leetcode.com/ 
http://openjudge.cn/POJ 这有个POJ上的ACM训练方案 
http://www.java3z.com/cwbwebhome/article/article19/res041.html 
http://ac.jobdu.com/index.php九度OJ

算法虐我千百遍,我待算法如初恋相关推荐

  1. 【算法虐我千百遍,我待ACM如初恋】Hail Algorithm,Hallelujah ACM!!

    (谨向余光中先生致敬) 鼠标轻划标题上的永恒常量 有人好奇的看着你,朋友 太过熟悉的窗口,人们不知 那无垠的循环中,你的叮咛 人心中总有魔兽红警反恐撸啊撸 却不知你富有魅力的救赎 三百分钟即创世 何止 ...

  2. 我虐小车千百遍,小车待我如初恋

    None 转.转.转,转它个天昏地暗. 卓大大,来调侃下.****这轮胎能比赛吗? 无语 大哥,拐弯悠着点.****一脚油门,车毁人亡. 我是车模中的白马王子

  3. Recycleview 虐我千百遍 我待Recycleview如初恋

    Recycleview(一) 第二天正式入门android,还以为门槛刚迈进去,谁知道我连鞋都还没脱呢,第一次接触Recycleview,直接懵逼,写一些源代码以防自己忘记 第一步 新建一个包 -ad ...

  4. Netty虐我千百遍我待Netty如初恋

    段一 刚开始接触Netty时, 主要是通过浏览文章, 好的差的统统浏览, 慢慢的也就会发现几个好的博主, 包括他们录播的视频我也会去看. 甚至还买了书籍, 不求甚解的看, 反正就是多看吸收. 一开始还 ...

  5. 那些曾虐我千百遍的计算机组成原理

    那些曾虐我千百遍的计算机组成原理 本笔记知识点来源于b站狂神说:聊汇编先导课,有兴趣的小伙伴点这里:狂神聊汇编先导课 文章目录 那些曾虐我千百遍的计算机组成原理 进制的本质 有符号数和无符号数的区别 ...

  6. VMware虐我千百遍,我却待她如初恋

    文章目录 一.相关环境 1.操作系统 2.VMware版本 二.我遇到过的bug 1.VMCI驱动程序无法自动安装,需要手动安装 2.Vmware提示以独占方式锁定此配置文件失败 3.VMware提示 ...

  7. Maven 虐我千百遍,我待 Maven 如初恋 侵删

    前言 在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见.Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那 ...

  8. 客户虐我千百遍,我待客户如初恋

    误闯误撞,进入了IDC行业,从事了服务器租用及托管的销售工作.很多人问我,什么是IDC,什么是服务器?我知道我解释的过于专业那么会有更多的问题,毕竟自己也不是百科全书,只好简答回复"没有显示 ...

  9. 我待数据如初恋,数据虐我千百遍

    我待数据如初恋,数据虐我千百遍 1.几个基础概念 1.1表达式 1.2语句 1.3程序 1.4函数 2.标识符 2.1关键字 2.2标识符的构成 3.基本数据类型 3.1整数和小数 3.2 布尔值和空 ...

最新文章

  1. C语言的有序单链表合并
  2. hdu 3853 LOOPS (概率dp 逆推求期望)
  3. 循环神经网络教程4-用Python和Theano实现GRU/LSTM RNN, Part 4 – Implementing a GRU/LSTM RNN with Python and Theano
  4. USACO1.1Broken Necklace[环状DP作死]
  5. 前端学习(2778):uni组件库的使用
  6. 在notepad++中运行python代码
  7. 【SQL】IN、EXISTS和表连接三者的效率比较
  8. 最好浏览器_Windows最好的浏览器!只有你想不到,没有它做不到
  9. LaTex中编译时出现“ Undefined control sequence”问题
  10. HaaS EDU场景式应用学习 - 光照信息屏
  11. matlab 动态面板数据分析,MATLAB空间面板数据模型操作简介 空间面板数据模型
  12. hcia hdcp实验
  13. HTTP请求头headers
  14. Inception 模块作用
  15. 书小宅之C#——实现的第三方程序嵌入自己的WinForm
  16. Scala下Play框架学习笔记(Actions,Controllers and Results)
  17. Python Qt5 入门教程
  18. 功放前级的左右_Altitude32前级功放题 - 什么是全景声功放_全景声功放有哪些
  19. ui-app使用pdfh5显示pdf文件 获取pdf总页数和当前阅读页数
  20. 有哪些原创的微信公众号推荐?(it技术编程类)

热门文章

  1. “熬夜”的地道英文说法
  2. 2019c/c++校招100题
  3. MySQL 数据库死锁问题-Deadlock found when trying to get lock
  4. 计算机毕业设计Java悦途旅游网(系统+程序+mysql数据库+Lw文档)
  5. Qt学习(六)—— QMainWindow
  6. RPA机器人眼中的税务工作
  7. 文字上下轮播 ,自定义cell上下轮播
  8. java 判断文件类型是否是音频_用java流方式判断文件类型
  9. python股票回测_Python量化交易-回测简单的交易策略
  10. ap 目标检测算法map_目标检测算法的评估指标:mAP定义及计算方式