算法日常
夏洛XIALUO
这个作者很懒,什么都没留下…
展开
-
三种排序算法代码与优缺点介绍(插入排序,冒泡排序,快速排序)
冒泡排序public void qipao() { int nums[] = {3,44,38,5,47,15,36,26,27,2,46,4,19,50,48}; int temp = 0; for (int i = nums.length - 1; i >= 0; i--) for (int j = 0; j < i; j++) { if (nums[j] > nums[j + 1原创 2021-11-25 21:25:20 · 5399 阅读 · 1 评论 -
运用递归实现快速排序算法(二分排序)
快速排序算法首先了解什么是哨兵排序,哨兵排序就是找到一个基准将整个数组按照基准分成前半段比基准小,后半段比基准大分成两组。之后将这两组分别继续递归执行哨兵排序,直到 l >= r 达到递归终点,完成排序。具体的动画流程可以登陆:https://visualgo.net/zh/sorting网站查看。import org.junit.Test;public class erfenPaixu { /** * 首先调用哨兵方法之后在使用递归的方法循环将基准左边部分和右边部分排序原创 2021-11-25 11:26:00 · 3697 阅读 · 1 评论 -
递归算法介绍及常用案例介绍(阶乘,斐波那契数列,把一个数分解成任意几个数的和)
递归算法递归是一个从上到下不停调用自身函数的方法。递归算法最重要的就是递和归这两个字,先得递出去之后才能归回来。递的过程就是调用自身函数一直向下的过程,归则是函数到达了递归终止的条件,逐级返回的过程。在递归的过程当中一定要有一个递归出口作为递归结束的标志。否则迎接你的只会是StackOverflowError:(因为递归次数太多导致的堆空间不足产生的错误)计算斐波那契数列前N项和方法一:普通方法int fibonacci1(int n) { int f[] = new int[50]原创 2021-11-24 21:49:03 · 417 阅读 · 0 评论