摘要:
辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的 阅读全文
posted @ 2019-07-16 23:46
别动我的猫
阅读(3461)
评论(0)
推荐(0)
摘要:
快速排序是一种常用的排序算法,比选择排序快很多。 在快速排序中使用了大量的递归,快速排序的三个步骤: 1、选择基准值 2、将数组分成两个子数组;小于基准值的元素和大于基准值的元素 3、对这两个子数组进行快速排序(递归) 快速排序的速度取决于选择的基准值,运行速度记做 O(n longn ),大O表示 阅读全文
posted @ 2019-07-16 23:45
别动我的猫
阅读(3898)
评论(0)
推荐(0)
摘要:
假设你的计算机存储了很多音乐,对于每首音乐,你都记录了其播放次数。 那么你需要将这个音乐列表按播放次数从多到少进行排序。假设这个列表的长度是 n 首先遍历这个列表,找出播放次数最多的歌曲,将其放到一个新列表的第一位,操作遍历 次数为 n 然后再次编译剩下的列表,找出播放次数最多的歌曲,把它放到排序列 阅读全文
posted @ 2019-07-16 23:37
别动我的猫
阅读(13627)
评论(0)
推荐(0)
摘要:
递归,顾名思义,自己调用自己的算法。 编写递归函数时,必须告诉它何时停止递归。正因为如此,每个递归函数都有两个部分:基线条件(base case)和递归条件(recurssive case)。递归条件指的是函数调用自己的条件,而基线条件指的是函数不再调用自己,避免无限死循环的条件。 因此使用递归的算 阅读全文
posted @ 2019-07-16 22:42
别动我的猫
阅读(14064)
评论(0)
推荐(0)
摘要:
分析:上述代码就是递归,通俗的讲就是自己调用自己;在执行函数test时,他也调用了另外一个函数,只不过这个函数的代码和上一个函数的代码一模一样!是不是很简单 看一下机器层面的执行过程:此时就需要引入栈帧的概念了:1:栈帧将栈分割成N个记录块,每一个记录块的大小是不一样的;2:这个记录块实际上是编译器 阅读全文
posted @ 2019-07-16 18:04
别动我的猫
阅读(18961)
评论(0)
推荐(0)
摘要:
栈先进后出,队列(堆)先进先出。 栈相当于你往泡菜坛子里装泡菜,从里面拿泡菜,先拿到的当然是上面的。也就是先进后出。队列相当于一个隧道,火车往里面开,不能回头,头先进去当然也先出来,这叫先进先出。 阅读全文
posted @ 2019-07-16 17:06
别动我的猫
阅读(864)
评论(0)
推荐(0)
摘要:
一、引入依赖 二、在src/main/resources下创建properties文件夹,建立redis-config.properties 三、在src/main/resources下创建spring文件夹 ,创建applicationContext-redis.xml maxWaitMillis 阅读全文
posted @ 2019-07-16 14:37
别动我的猫
阅读(395)
评论(0)
推荐(0)