![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法分析
Veer_c
会当凌绝顶
展开
-
Java经典算法(二)
【程序10】题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n != k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。解题代码:import java.util.Scanner;public class Te原创 2020-05-21 19:56:07 · 4100 阅读 · 2 评论 -
Java经典算法(一)
【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问某个月的兔子总数为多少?**程序分析:**兔子的规律为数列1,1,2,3,5,8,13,21…,为Fibonacci数列(斐波那契数列)。1.使用递归求解:import java.util.*;public class Test1{ public static void main(String args[]){ while(true){ in原创 2020-05-18 17:34:31 · 8081 阅读 · 11 评论 -
深入理解递归算法以及应用场景
递归的思想以此类推是递归的基本思想。具体来讲就是把规模大的问题转化为规模小的相似的子问题来解决。在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况。另外这个解决问题的函数必须有明显的结束条件,这样就不会产生无限递归的情况了。递归的两个条件:自身调用:可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式递归出口:存在一种简单情境,可以使递归在简单情境下退出。怎么更好地理解递归算法递归:你打开面前这扇门,看到屋里面还有一扇门(这门可能跟原创 2020-05-18 14:48:42 · 3391 阅读 · 0 评论 -
算法分析与优化
算法分析同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率.算法分析的目的在于选择合适算法和改进算法.一个算法的评价主要从时间复杂度和空间复杂度来考虑.1、时间复杂度(1)时间频度一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花...原创 2019-12-29 20:26:56 · 3741 阅读 · 0 评论