![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
主要写一下算法的学习心得以及对应的算法代码,学习使用
Smileassissan
好好学习,天天向上,做一个安全测试追风少年
展开
-
Java算法之递归算法-如何计算阶乘的值
题目:使用递归算法计算阶乘的值,也就是5!=5*4*3*2*1,直接使用循环是非常简单的,这边练习一下递归算法。上一篇学了递归之后,练习一下递归算法。递归条件:x * f(x-1)基线条件:等于1的时候返回1。原创 2024-07-26 22:16:03 · 135 阅读 · 0 评论 -
算法之递归算法
递归是非常常见的一种算法, 也比较难以理解,简而言之,递归就是写了一个方法,方法中还调用了该方法,相当于自己调用自己,如果书写不当,就会有堆栈溢出的风险,无法跳出。所以我们编写递归函数时,必须要告诉他何时停止递归,这就是基线条件,而递归条件就是指函数调用自己。,也就是给一个输入,然后依次输出值并减一,直到为1的时候。这个时候我们可以用递归的方式来写,先理出递归的两个条件。递归条件:入参不小于0的话,则自己调用自己,入参减一。当输入为5的时候,可以看到,总共递归了五次。举个例子,如果要编写一个倒计时的函数。原创 2024-07-26 22:00:12 · 42 阅读 · 0 评论 -
算法之选择排序
什么是选择排序呢,就是给你一组无序数组,进行排序,那么从第一个数开始,依次与后面的数进行比较,如果找到最小的,就放在第一位,然后从第二个再进行比较,放在第二个,重复以上操作,直到找到最后一个数,这样就完成了由小到大的一个排序,由大到小也是一样的。本来的想法是找到一个最小的,直接从原来的数组中删除,然后放到新的数组中就好了,但是由于java中的数组删除一个数很麻烦,因此这边直接需要新建个swap方法,专门用来进行数组中的数进行交换使用。输入一组无序数组,然后进行从小到大的排序,并输出最后的结果。原创 2024-07-20 21:54:28 · 426 阅读 · 0 评论 -
算法学习之二分法
而是核心算法就是从数组的中间开始查找,定义数组的low和high,分别是0和数组的长度减一,然后从中间开始比较,如果大了,则更新high,小了话则更新low,这样的话每次都能去除掉一半的数。二分查找的运行时间为。输入一行有序数组,和一个目标数字,使用二分法查找有序数组中是否存在该目标数字,存在时输出查找次数和序号,如果找不到则输出查找次数以及未找到对应的数。,也就是2的对数,比如8个数,3次就可以找到,16个数,4次就可以找到,当数越大时,节约的时间越多。原创 2024-07-20 21:27:03 · 239 阅读 · 0 评论