基本算法思想

一、什么是算法

1、算法是用于计算的方法,通过这种方法可以达到预期的计算结果。

2、算法是模型分析的一组可行的、确定的和有穷的规则。

3、算法的5个特征

(1)有穷性:算法的指令和步骤的执行次数是有限的,执行时间也是有限的。

(2)确切性:算法的每一个指令或步骤都必须有明确的定义和描述。

(3)输入:一个算法应该有相应的输入条件,用来刻画运算对象的初始情况。

(4)输出:一个算法应该有明确的结果输出。

(5)可行性:算法的执行步骤必须是可行的,且可以在有限时间内完成。

4、算法的性能评价

(1)时间复杂度:算法执行所需要耗费的时间,时间越短,算法越好。

空间复杂度:算法程序在计算机中执行所需要消耗的存储空间。分为2个方面:程序保存所需要的存储空间,即程序的大小;程序在执行过程中所需要消耗的存储时间资源。

二、穷举算法思想

1、穷举算法基本思想:从所有可能的情况中搜索正确的答案。其执行步骤如下:

1)对于一种可能的情况,计算其结果。

2)判断结果是否满足要求,如果不满足要求则进行执行第(1)步来搜索下一个可能的情况;如果满足要求,则表示寻找到一个正确的答案。

2、在使用穷举算法时,需要明确问题的答案的范围,这样才可以在指定范围内搜索答案。指定范围之后,就可以使用循环语句和条件判断语句逐步验证候选答案的正确性,从而达到需要的正确答案。

三、递推算法思想

1、递推算法基本思想:根据已有的数据和关系,逐步推导而得到结果。其执行步骤如下:

1)判断已知结果和关系,求解中间结果。

2)判断是否达到要求,如果没有达到,则继续根据已知结果和关系求解中间结果;如果满足要求,则表示找到一个正确的答案。

2、递推算法往往需要用户直到答案和问题之间的逻辑关系。

四、递归算法思想

1、递归算法基本思想:在程序中不断反复调用自身来达到求解问题的方法。

2、递归调用是一个方法在其方法体内调用其自身的方法调用方式(又称为递归方法)。在递归方法中,主调方法又是被调方法,执行递归方法将反复调用其自身,每调用一次就进入新的一层。

3、方法的递归调用分为2种情况:直接递归和间接递归。

1)直接递归:在方法中调用方法本身。

2)间接递归:间接的调用一个方法。

4、编写递归方法时,必须使用if语句强制方法在未执行递归调用前返回。如果不这样做,在调用方法后,它将永远不会返回。

5、递归的优缺点

1)优点:程序代码更简洁清晰,可读性更好。

2)缺点:大部分递归例程没有明显的减少代码规模和节省内存空间。递归形式比非递归形式运行速度要慢一些。

五、分治算法思想

1、分治算法基本思想:将一个计算复杂的问题分为规模较小,计算简单的小问题求解,然后综合各个小问题,而得到最终问题的答案。其执行步骤如下:

1)对于一个规模为N的问题,若该问题可以容易的解决,则直接解决;否则执行下面步骤。

2)将该分解为M个规模较小的子问题,这些子问题相互独立,并且与原问题形式相同。

3)递归的解决这些问题。

4)将各子问题的解合并得到原问题的解。

2、使用分治算法需要待求解问题能够简化为若干个小规模的相同问题,通过逐步划分,能够达到一个易于求解的阶段而进行直接求解,程序中可以使用递归算法来进行求解。

六、概率算法思想

1、其执行步骤如下:

1)将问题转化为相应的几何图形S,问题的结果往往对应几何图形中某一部分S1的面积。

2)向几何图形随机撒点。

3)统计几何图形S中和S1中的点数。根据S的面积和S1面积的关系以及各图形中的点数来得到计算的结果。

2)判断上述结果是否在需要的精度之内,如果未达到精度则进行执行步骤(2);如果达到精度要求,则输出近似结果。

2、概率算法4中形式;

1)数值概率算法.

2)蒙特卡罗算法。

3)拉斯维加斯算法。

4)舍伍德算法。

 


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值