![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
weixin_44839211
这个作者很懒,什么都没留下…
展开
-
最小公倍数 最大公约数 化简
题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。 /** 在循环中, 只要除数不等于 0,用较大数除以较小的数, 将小的一个数作为下一轮循环的 大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为 0,返回较大 的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。 * /import java.util.*;public class MaxCommonD...原创 2019-03-30 14:51:50 · 241 阅读 · 0 评论 -
希尔排序
思想:设待排序元素序列有n个元素,首先取一个整数increment(小于n)作为间隔将全部元素分为increment个子序列,所有距离为increment的元素放在同一个子序列中,在每一个子序列中分别实行直接插入排序。然后缩小间隔increment,重复上述子序列划分和排序工作。直到最后取increment=1,将所有元素放在同一个子序列中排序为止。由于开始时,increment的取值较大,每...原创 2019-06-05 15:44:47 · 63 阅读 · 0 评论 -
快速排序
思想:如果有N个元素需要排序,那么首先从N个元素中找到最小的那个元素与第0位置上的元素交换(说明一点,如果没有比原本在第0位置上的元素小的就不用交换了,后面的同样是),然后再从剩下的N-1个元素中找到最小的元素与第1位置上的元素交换,之后再从剩下的N-2个元素中找到最小的元素与第2位置上的元素交换,…直到所有元素都排序好(也就是直到从剩下的2个元素中找到最小的元素与第N-2位置上的元素交换)。...原创 2019-06-05 20:51:20 · 106 阅读 · 0 评论 -
斐波那契问题
1.递归方法:public static int Febonacci(int index) {//获取斐波那契数列第index项元素 用递归方法实现if(index == 1 || index == 2) return 1;if(index>2) {return Febonacci(index-1) + Febonacci(index-2);}return -1;}2.非递归...原创 2019-06-02 17:23:28 · 410 阅读 · 0 评论 -
二分查找
1.递归:public static int BinarySrarch(int[]a,int target,int low,int high) {int mid = (low+high)/2;if(a[mid]==target) return mid;if (target<a[mid]) {high = mid-1;return BinarySrarch(a, target,lo...原创 2019-06-02 17:24:24 · 65 阅读 · 0 评论 -
汉诺塔问题
public static void Hanoi(int n,char from,char in,char to) {if(n == 1) {System.out.println(“把第1个盘子从”+from+“移动到”+to);}else {Hanoi(n-1, from, to, in);System.out.println(“第”+n+“个盘子”+from+“移动到”+to);H...原创 2019-06-02 18:08:18 · 60 阅读 · 0 评论 -
冒泡排序
思想:每一轮选出一个最大的值 放在数组末尾 因此n个元素应该比较n-1轮以确定n-1个最大的数(最小的数肯定在最前面了)而每一轮中通过两两比较 如果前一个数比后一个数大 就交换两者大小。第i轮确定了最大的i个数 这i个数由小到大放在数组的最后,因此,第i轮中比较大小只需要比较前n-1-i个数。下面为代码:public class DemoButtleSort {public static...原创 2019-06-02 18:40:59 · 62 阅读 · 0 评论 -
快速排序
思想:设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它左边,所有比它大的数都放到它右边,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。代码如下:public static void QuickSort(int[] arr, i...原创 2019-06-04 17:17:25 · 323 阅读 · 0 评论 -
插入排序
思想:从第二个元素起 与其面的元素比较 若第i个元素比第i-1个元素小 则 将第i-1个元素保存在temp临时变量中,从第i-1个元素起递减 寻找比第i个元素小的那个 将比他大的都向后移动 然后将第i个元素 插入到比i小的元素的后一位 即完成了插入排序代码如下:public static void InsertSort(int[] arr) {int len = arr.length;f...原创 2019-06-04 17:35:11 · 65 阅读 · 0 评论