
算法
somenzz
公众号【Python七号】
https://somenzz.cn
展开
-
动态规划-如何推导出状态转移方程?
今天学习了《程序员的数据基础课》中的动态规划小节。如果你觉得这个课程对你有启发,请通过 分享一个IT专属的数学课,让这个冬天不太冷 下方的链接购买,加我微信 somenzz,返你 12 元红包,降低你的学习成本。什么是动态规划?在递归的时候,我们可以通过不断地分解问题,将复杂的任务简化为最基本的小问题,比如基于递归实现的归并排序,排列,组合等。不过有时候,我们并不用处理所有可能的情况,只要找到...原创 2019-01-07 21:15:38 · 18720 阅读 · 0 评论 -
Python实现二叉树的增加、删除、层次遍历、先序/后序/中序遍历
学过数据结构的同学一定这种数据结构非常熟悉了,树是一种非常高效的非线性存储结构,学好树对理解一些复杂的算法非常有帮助。树有以下内容需要掌握:树、二叉树二叉查找树平衡二叉查找树、红黑树递归树作为一名 Python 程序员,如果把基础的数据结构与算法都自己亲自实现一遍,那么你已经比 90% 的 Python 程序员更优秀了。今天的我们的目标是使用 Python 来实现一棵二叉树。 二叉...原创 2019-01-23 21:57:32 · 1755 阅读 · 2 评论 -
跳表的设计思路,值得每一个程序员学习
学习《数据结构与算法之美》中的第 17 节 [为什么redis一定要用跳表来实现有序集合]后,觉得很有价值,以自己的理解整理出下文,分享给爱学习的你,希望你可以看懂。上篇文章二分法解决妹子遇到的难题 介绍了二分查找算法法的强大之处。二分查找算法之所以能达到 O(logn) 这样高效的一个重要原因在于它所依赖的数据结构是数组,数组支持随机访问一个元素,通过下标很容易定位到中间元素。而链表是不支持随...原创 2019-01-15 20:04:25 · 1926 阅读 · 1 评论 -
堆的实现及工程应用(Python)
堆和栈是计算机程序设计中非常重要的数据结构,操作系统和数据库均有非常广泛的应用,掌握好这两种数据结构也可以高效地解决工程问题。今天分享一下在极客专栏学到的堆的实现和工程应用,希望对你有所启发。堆有两点需要了解,一是堆是一颗完全二叉树,完全二叉树就是只有最后一层有页子节点,而且页子节点是靠左排列的;二是堆中的每一个节点都大于其左右子节点(大顶堆),或者堆中每一个节点都小于其左右子节点(小顶堆)。...原创 2019-02-25 22:06:15 · 631 阅读 · 0 评论 -
Python-图-如何找出社交网络中的三度好友关系
羁绊前行的,不是肆虐的狂风,而是内心的迷茫。—王争。最近有些偷懒,距离上次更新也有两个星期了,原因我也很清楚,就是又开始有些迷茫了,购买了不少课程,仍不能减轻内心的焦虑。焦虑的原因还是想得太多,做得太少,总想一口吃个胖子,而实际上,学习是有滞后性的,而且因人而异,因此学习时不应报着是否有用无用的功利心态,书到用时方恨少,学习重在积累,你学习到的知识可能短期内用不到,但说不定未来某天某个时机,...原创 2019-03-07 20:25:30 · 2560 阅读 · 0 评论