算法
pekey23
这个作者很懒,什么都没留下…
展开
-
选择排序
一、数组和链表二、选择排序一、数组和链表在学习选择排序之前,我们需要先了解一下数组和链表。数组是内存连续的一段空间,也就是说数组的每个元素所对应的索引是连在一起的,数组的第一个值得索引为0,第二个为1,... 以此类推。所以对于数组来说,定位某个值是比较容易的。链表是内存不连续的一段空间,链表一开始不会指定大小,随机存放一个元素记录所对应的索引,并记录下一个元素的索引位置,就像寻宝游戏一样。例如第...原创 2018-06-28 16:28:55 · 187 阅读 · 0 评论 -
二分法查询
简介算法是一组完成任务的指令。任何代码片段都可视为算法。但是不同的代码逻辑实现了同一功能,但性能可能有几万倍的差别。举个简单的例子:现在我们来玩一个猜字的游戏,A说:我心里从0-100默记一个数,由你来猜,如果你猜的数字比我大,我会提示你太大了,反之亦然。那么问题是你如何能快速的猜到A心里想的数字呢?看完这篇文章你就会得到答案。二分法查询对于上面的问题,我们可能有多种方法来解决,例如:我可以 0...原创 2018-06-28 17:06:30 · 676 阅读 · 0 评论 -
递归
递归是一个让人又爱又恨的算法,为什么这么说呢?如果理解递归的话,就会觉得这代码写的真简洁,而且简答易懂,对于不理解递归的人来说,这是什么啊?天书?我怎么推导不出来结果是什么?对于视性能如命的人来说,他们不愿意用递归,因为循环的性能比递归更好。正如Leigh Caldwell说过一句话:“如果使用循环,程序的性能可能更高;如果使用递归,程序可能更容易理解。如何选择要看什么对你来说更重要。”很多算法都...原创 2018-06-28 21:21:30 · 143 阅读 · 0 评论 -
分而治之(divide and conquer,D&C)
分而治之并不是一种算法,而是一种解决算法的思想(一种递归的算法)。分而治之单充的理解起来可能有些困难,下面大概的解释一下:有一个这样的需求,我有一个长方形,需要分割成均匀的正方形,而且分割成的正方形要尽可能的大。大家可以想一下如何实现这个问题?(思考十几秒)下面我们用D&C的策略来实现一下,上面说到D&C是递归的。那么,首先需要递归的两个步骤:a)找出基线条件(尽可能简单的条件)b...原创 2018-07-04 10:20:27 · 588 阅读 · 0 评论 -
算法与数据结构学习网址
数据结构和算法动态可视化 (Chinese) https://visualgo.net/zh 算法与数据结构 https://www.itcodemonkey.com/category/TheAlgorithm/ 用python实现基本数据结构和算法 https://python-web-guide.readthedocs.io/zh/latest/algorithms/algorithms....原创 2018-09-26 17:30:34 · 2238 阅读 · 0 评论