Python拆分,python整数划分
Windows应用实验报告
学院:计算机amp;软件学院
项目:分治算法实验
实验时间:2020年9月25日
实验地点:15310
讲师:
学生姓名:
学生编号:
类别:18个软件类别2
2019-2020学年的第二学期
文本格式
实验的目的
1.了解分治策略算法的思想和基本原理。
2.掌握运用分而治之解决问题的一般特点。
3.掌握分解和管理的方法
4.针对实际问题,可以精确分解规则,设计一个划分规则算法。
5.它能准确地分析算法的时间复杂度和空间复杂度。
一.实验平台
Pycharm,Python
二。实验内容
数组中的元素A,a2,an根据已知的关键字大小来判断某个特定的元素X是否出现在这个表中。
a),找到X在表中的位置,并返回它的下标;
b)否则,返回值0。
四。算法设计
1.问题分析
第一步分解:将原问题分解成若干小规模的、独立的、与原问题形式相同的子问题;
分步解决:如果子问题规模小,容易解决,直接解决。否则,递归求解每个子问题。
第三步合并:将问题各部分的解合并成原问题的解。
2.问题建模
构造函数,当有结束条件时继续循环。
3.算法解释
算法描述:基本思想和策略
规则法的设计思想是将难以直接解决的大问题分成小规模的同一问题,分别进行破和规则。
划分策略是一个规模为N的问题如果容易解决就直接解决,否则就分解成k个规模较小的子问题。这些子问题相互独立,以与原问题相同的形式递归求解,每个子问题的解会组合起来得到原问题的解。这种算法设计策略叫做分治法。
1如果原题可以分成k题。
三。算法来源
递归:
` ` ` python
a=[ 1,2,4,5,8,9,10,13,20 ]
deffind(I,l,r):
如果l=r:
mid=int((LR )/2))).
如果a[mid]==i:
返回到mid
elif i a[mid]和i=a[mid-1]:
寻找(I,L,mid-1))。
elif ia[mid]和i=a[mid 1]:
find(I,mid 1,r)).
否则:
返回-1
否则:
返回-1
if __name__==__main__ :
Print (find (8 8,0,8))
Print (find (3 3,0,8))
非递归:
` ` ` python
a=[ 1,2,4,5,8,9,10,13,20 ]
信息技术
定义查找(I):
l=0
r=9
(mid=(LR)/2)())))))))))))65
wile(L=R):
mid=int((LR )/2))).
如果a[mid]==i:
返回到mid
elif i a[mid]:
R=mm1
否则:
l=中间1
返回-1;
if __name__==__main__ :
打印(查找)8))
打印(查找)3))
不及物动词测试数据
递归方法
列表:1,2,4,5,8,9,10,13,20
分别输入8、0和8。
3,0,8
4输出
-1
非递归:
列表:1,2,4,5,8,9,10,13,20
分别输入:8
三
4输出
-1
七。程序执行结果(要求:截图说明算法执行结果)。
递归:
非递归:
八。实验总结
1.实验中遇到的问题及解决方法
在构建一个函数时,要配置相应的参数,在函数中时参数要不断更新。
当非递归结束运行时,需要设置结束条件。
2.实验收获
更好的理解递归算法的意义。算法很有趣,就像俄罗斯的Eva。我打算每天刷两道算法题。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。