{"action":"opened","issue":{"url":"https://api.github.com/repos/sauchye/iosdev_notes/issues/16","labels_url":"https://api.github.com/repos/sauchye/iosdev_notes/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/sauchye/iosdev_notes/issues/16/comments","events_url":"https://api.github.com/repos/sauchye/iosdev_notes/issues/16/events","html_url":"https://github.com/sauchye/iosdev_notes/issues/16","id":117727967,"number":16,"title":"Algorithm","user":{"login":"sauchye","id":4171847,"avatar_url":"https://avatars.githubusercontent.com/u/4171847?v=3","gravatar_id":"","url":"https://api.github.com/users/sauchye","html_url":"https://github.com/sauchye","followers_url":"https://api.github.com/users/sauchye/followers","following_url":"https://api.github.com/users/sauchye/following{/other_user}","gists_url":"https://api.github.com/users/sauchye/gists{/gist_id}","starred_url":"https://api.github.com/users/sauchye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sauchye/subscriptions","organizations_url":"https://api.github.com/users/sauchye/orgs","repos_url":"https://api.github.com/users/sauchye/repos","events_url":"https://api.github.com/users/sauchye/events{/privacy}","received_events_url":"https://api.github.com/users/sauchye/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-11-19T02:33:24Z","updated_at":"2015-11-19T02:33:24Z","closed_at":null,"body":"\r\n>  出自 ：http://www.kuqin.com/shuoit/20150929/348338.html\r\n\r\n--\r\n\r\n> 说明：如有侵权请联系@Sauchye，旨在分享，相互学习~\r\n\r\n--\r\n\r\n算法虐我千百遍，我待算法如初恋。\r\n\r\n学习方法\r\n1） 把所有经典算法写一遍\r\n2） 看算法源码\r\n3） 加入算法学习社区，相互鼓励学习\r\n4） 看经典书籍\r\n\r\n基本数据结构和算法\r\n\r\n#### 这些算法全部自己敲一遍：\r\n\r\n* 二叉树\r\n* 二叉树\r\n* 二叉查找树\r\n* Trie树(前缀树)\r\n* 后缀树\r\n* 最优二叉树(赫夫曼树)\r\n* 伸展树(splay tree 分裂树)\r\n* 平衡二叉树AVL\r\n* 红黑树\r\n* B树(B-),B+,B*\r\n* R树\r\n* 二叉堆 （大根堆，小根堆）\r\n* 二项树\r\n* 二项堆\r\n* 斐波那契堆(Fibonacci Heap)\r\n\r\n--\r\n\r\n#### 哈希表/散列表 (Hash Table)\r\n* 字符串算法\r\n* BF算法\r\n* KMP算法\r\n* BM算法\r\n\r\n--\r\n\r\n#### 图的算法\r\n图的存储结构和基本操作（建立，遍历，删除节点，添加节点）\r\n最小生成树\r\n拓扑排序\r\n关键路径\r\n最短路径: Floyd,Dijkstra,bellman-ford,spfa\r\n\r\n--\r\n\r\n#### 排序算法\r\n交换排序算法\r\n插入排序\r\n选择排序\r\n希尔排序\r\n堆排序\r\n快排\r\n归并排序\r\n\r\n--\r\n\r\n#### 线性排序算法基数排序\r\n\r\n查找算法\r\n顺序表查找：顺序查找\r\n有序表查找：二分查找\r\n分块查找： 块内无序，块之间有序；可以先二分查找定位到块，然后再到块中顺序查找 中使用顺序查找（这里之所以叫动态查找表，是因为表结构是查找的过程中动态生成的）\r\n动态查找: 二叉排序树，AVL树，B- ，B+\r\n哈希表： O(1)\r\n\r\n--\r\n\r\n#### Example\r\n15个经典基础算法\r\nA*寻路算法： 求解最短路径 Dijkstra：最短路径算法 （八卦下：Dijkstra是荷兰的计算机科学家,提出”信号量和PV原语“,\"解决哲学家就餐问题\",”死锁“也是它提出来的）\r\nDP (动态规划 dynamic programming)\r\nBFS/DFS （广度/深度优先遍历）\r\n红黑树 （一种自平衡的二叉查找树）\r\nKMP 字符串匹配算法\r\n遗传算法\r\n启发式搜索\r\n图像特征提取之SIFT算法\r\n傅立叶变换\r\nHash\r\n快速排序\r\nSPFA(shortest path faster algorithm) 单元最短路径算法\r\n快递选择SELECT\r\n\r\n--\r\n\r\n#### 算法设计思想\r\n为了更简洁的形式设计和藐视算法，在算法设计时又常常采用递归技术，用递归描述算法。\r\n迭代法\r\n穷举搜索法\r\n递推法\r\n动态规划\r\n贪心算法\r\n回溯\r\n分治算法\r\nhttp://www.chinaunix.net/old_jh/23/437639.html\r\n\r\n#### 推荐阅读\r\n刷题必备\r\n《剑指offer》\r\n《编程之美》\r\n《编程珠玑》Programming Pearls 偏算法理论\r\n《编程珠玑(续)》\r\n《More Programming Pearls》 偏算法轶事\r\n\r\n《数据结构与算法分析》\r\n《算法设计与分析基础》\r\n《算法导论》 告诉你有哪些算法\r\n《算法引论》 告诉你如何创造算法 断货\r\n\r\n侧重经典算法的实现\r\n《Elements of Programming》 STL代码 快 准 狠 ，写出的代码可以上层次\r\n《C interfaces and Implementation》\r\n《The practice of programming》 Brian Kernighan和Rob Pike\r\n\r\n《微软的梦工厂》\r\n《Language Implementatin patterns》\r\n《Algorithms on Strings,Trees and Sequences》\r\n\r\n《writing efficient programs》 优化\r\n\r\n《Algorithm Design Manual》 红皮书\r\n\r\n《The science of programming》 证明代码段的正确性 800块一本\r\n\r\n高级数据结构（如元胞自动机、斐波纳契堆、线段树）\r\n\r\n《Algorithms》 4版\r\n《Advanced Data Structures》 各种诡异数据结构和算法 600块\r\n\r\n《深入理解计算机系统》\r\n《TCP/IP详解三卷》\r\n《UNIX网络编程二卷》\r\n《UNIX环境高级编程：第2版》\r\n\r\n参考链接和学习网站\r\n** @ July 博客《二之再续、Dijkstra 算法+fibonacci堆的逐步c实现》**\r\n《数学建模十大经典算法》\r\n《数据挖掘领域十大经典算法》\r\n《十道海量数据处理面试题》\r\n《数字图像处理领域的二十四个经典算法》\r\n《精选微软等公司经典的算法面试100题》\r\n\r\n\r\n \r\n微软面试100题http://blog.csdn.net/column/details/ms100.html\r\n程序员编程艺术http://blog.csdn.net/v_JULY_v/article/details/6460494\r\n\r\nhttps://github.com/julycoding/The-Art-Of-Programming-By-July算法题集合https://github.com/activesys/libcstl通用数据结构和算法库\r\nhttps://github.com/nonstriater/Learn-Algorithm算法小组\r\n\r\n贝叶斯：\r\n1. 阮一峰总结的这两篇《贝叶斯推断及其互联网应用》\r\n《贝叶斯推断及其互联网应用》\r\n《贝叶斯推断及其互联网应用》\r\n2. 算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)\r\nhttp://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html\r\n3. 朴素贝叶斯（NB,Naive Bayes)简介\r\nhttp://home.cnblogs.com/group/topic/40112.html\r\n4. 数学之美番外篇：平凡而又神奇的贝叶斯方法\r\nhttp://mindhacks.cn/2008/09/21/the-magical-bayesian-method/\r\n\r\n这4部分看完后，就能自己推贝叶斯、朴素贝叶斯，还能了解各种常见概率、集合论等，实际上对应用贝叶斯已经可以打好基础了。\r\n\r\nMYSQL 背后的数据结构和算法http://blogread.cn/it/article/4088?f=wb2\r\n\r\n基本算法演示\r\nhttp://sjjg.js.zwu.edu.cn/SFXX/sf1/sfys.html\r\nhttp://www.cs.usfca.edu/~galles/visualization/Algorithms.html\r\n\r\n编程网站\r\n\r\nhttp://oj.leetcode.com/\r\nhttp://openjudge.cn/POJ。这有个POJ上的ACM训练方案http://www.java3z.com/cwbwebhome/article/article19/res041.html\r\nhttp://ac.jobdu.com/index.php九度OJ"}}