![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
记录了在学习算法的道路上学习到的东西
Jonny Jiang-zh
do what you want to do
展开
-
快速排序
快速排序本篇内容共分两部分:分而治之,快速排序。分而治之(divide and conquer,D & C)——种著名得递归式问题解决办法。快速排序是一种排序算法其速度比选择排序快得多。1. 分而治之首先,我们申明一下D&C的工作原理:找出简单的基线条件(跳出无限循环的条件)确定如何缩小问题的规模,使其符合基线条件接下来通过一个例子来说明分而治之思想。假设,我们求数组 [1, 2, 3]所以元素的和,我们首先使用循环来实现一下:def sum(arr): tota原创 2020-07-09 00:19:23 · 201 阅读 · 0 评论 -
递归
递归在讲解关于递归的主要内容前,先让我们看一个gif动图。这个动图呢很像我们平时生活中的开多个门的场景。门要开就需要关,我们开了多扇门就相应的意味着我们要关掉多少们,而且最先开的门往往最后关,最后开的门往往最先开,回想一下是不是这样子的。以上就是递归在我们平时生活中的一个案例,接下来就是一个编程中的案例。对于求5!,我们呢,经常用的一种方法是这样子的:def factorial(num): # 求阶乘函数 resolution = 1 for i in range(1,num):原创 2020-07-08 00:34:07 · 256 阅读 · 0 评论 -
选择排序
简单排序简单排序,其实就是冒泡排序的一种别称,其工作原理就是:一个有n个元素的列表,经过n-1轮的排序后就是一个有序的列表,每轮选出该轮中最大/小的数填充到新的列表中,因为前n-1个已经排好序,自然而然最后一个已经好了。就好像10个高矮不一的人要排成从矮到低的列,我们就可以,第一次选出最矮的站在新的一列的第一个,然后再次选择剩下的人中最矮的接着新队列的最矮的人后面。这样,经过9轮排序后,还剩下一个最高的,肯定站在最后面,这样就排好序了。其中,n个人,每次排序最少比较0次(最后一次),最多比较n-1(第一次原创 2020-07-07 18:33:25 · 212 阅读 · 0 评论 -
二分查找
二分查找二分查找是一种算法,它的输入是一个有序列表。如果所要查找的元素在其中就返回其位置,否则就返回None。二分查找在生活中最常见的例子就是猜数游戏,游戏的玩法呢就是支持人给出一个数的范围,心里确定一个数,让其他人来猜。每次当有人猜错时,主持人便会告诉我们猜大了还是猜小了,相应的我们的猜数范围也跟着缩小,直至猜中那个数。一般来说的猜数方式常见的就是挨个挨个问,比如说主持人给的数字范围是0——10,你呢第一次猜4,主持人说小了,然后你就会猜5、6…直到猜到10 。其中一共猜了7次,当然,这只是一种假设原创 2020-07-07 11:57:23 · 376 阅读 · 0 评论