![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经典算法
流云一号
2013年参加工作,拥有计算机软考高级证书,熟悉Java后端技术。QQ邮箱:642986205@qq.com
展开
-
java经典算法-百钱买百鸡
问题:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,100文钱买100只鸡,怎么买?分析:题目中有三个未知数,传统方法不好求解,可以利用计算机强大的运算能力,用穷举的方法求解。定义公鸡数量为cock,cock不会超过20;定义母鸡数量为hen,hen不会超过33;小鸡数量可用100-cock-hen表示。因为有100只鸡,不用担心算出的小鸡数为负数。代码如下:public clas...原创 2018-07-24 09:32:17 · 32447 阅读 · 4 评论 -
java经典算法-兔子问题
问题:有一只兔子,从第3个月开始每月生1只兔子,小兔子长到第3个月开始每个月也会生1只兔子,假如兔子都不死,问每个月的兔子总数是多少?分析:乍一看觉得问题挺复杂,仔细分析之后发现,兔龄2个月及2个月以上的兔子在新的1个月每只都会生1只兔子。对于新的这个月来说,之前兔龄2个月及2个月以上的兔子就是2个月前的兔子总数,也就是说新的1个月相比上1个月增加的兔子数是2个月前的兔子数,其实就是当月的兔子...原创 2018-07-28 20:28:58 · 12917 阅读 · 0 评论 -
java经典算法-水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。用java实现其实很简单,遍历所有的三位数,设百位数为i,i的取值范围是1-9,设十位数为j,j的取值范围是0-9,设个位数为n,n的取值范围是0-9。实现代码如下: public static void main(String[] args) { ...原创 2018-07-29 10:29:45 · 1186 阅读 · 0 评论 -
Java实现成语接龙
近来,想做一些算法练习,无意中想到了我们非常熟悉的成语接龙游戏(本次以四字成语为例),就想着如何用java实现成龙接龙的关键逻辑。说干就干,于是很快梳理了一下思路:1、首先在数据库构建一个表,导入大量的成语,作为成语储备。(这是基础)2、思考接龙逻辑,实现成语接龙。(这是核心)首先,我们来构建成语库,根据成语接龙的游戏规则,思考了下,表至少需要以下字段:成语内容、成语首字、成语末尾字。...原创 2018-11-06 09:40:07 · 8218 阅读 · 113 评论 -
计数排序Java示例
计数排序是一个非基于比较的排序算法,计数排序的基本思想是:对于给定的输入序列中的每一个元素x,确定该序列中值小于x的元素的个数。有了这个信息之后,就可以将x直接存放到最终的输出序列的正确位置上。例如,如果输入序列中只有10个元素的值小于x的值,则x可以直接存放在输出序列的第11个位置上。算法过程:假设输入的线性表L的长度为n,L=L1,L2,..,Ln;线性表的元素属于有限偏序集S,|S|...原创 2018-11-09 10:04:45 · 210 阅读 · 0 评论 -
Java实现快速排序
快速排序是经典排序算法之一,它的基本思想是:通过一趟排序使要排序的数据分为两部分,其中一部分的所有数据比另外一部分的所有数据都要小,然后再用此方法对这两部分继续排序。通过递归,最终使整个数据达到有序序列,其中也有二分的思想。设要排序的数组是arr[0]……arr[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,...原创 2018-11-06 21:32:06 · 193 阅读 · 0 评论 -
归并排序java示例
归并排序是建立在归并操作上的一种有效的排序算法,该算法采用分治法的思想。分:将待排序序列拆分成一个个子序列。治:将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。可以采用递归的方式将待排序序列拆分,然后进行归并操作。归并操作的工作原理如下:第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列。第二步:设定两个指针,最初位置分别为...原创 2018-11-08 09:03:34 · 229 阅读 · 0 评论 -
堆排序Java示例
堆排序是指利用堆这种数据结构所设计的一种排序算法。堆的特点是子结点总是小于(或者大于)它的父节点,根节点最大的堆叫做最大堆,根节点最小的堆叫做最小堆。根据升序或降序的排序需求选择使用最大堆还是最小堆,本文以升序排列为例,所以选用最大堆。堆排序的基本思想是:将原始序列先调整为一个最大堆,这样根顶元素就是整个序列的最大值;将其与末尾元素交换,这样该序列最大元素就归位了;将剩下的N-1个元素再调整为...原创 2018-11-08 13:53:23 · 218 阅读 · 0 评论