python算法之基础

python算法之基础

图解算法使用Python



前言

计算思维分为四部分:分解、模式识别、模式概括与抽象以及算法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、计算机绘图指令实践

指令说明
BT画大三角形
ST画小三角形
BC画出大圆形
SC画出小圆形
BR画大矩形
SR画小矩形
Repeat(a1 a2 a3 …)b重复括号内所有指令b次,例如Repeat(SC)2表示连续画出两个小圆形

二、最大公约数

1.描述

使用辗转相除法算法来求取两个整数的最大公约数。

代码如下(示例):

Num_1=int(input('请输入第一个整数:'))
Num_2=int(input('请输入第一个整数:'))
if Num_1 < Num_2:
	temp_num = Num_1
	Num_1=Num_2
	Num_2=temp_num

while Num_2 != 0:
	temp_num=Num_1 % Num_2
	Num_1=Num_2
	Num_2=temp_num
print('最大公约数(g.c.d):',Num_1)

2.算法条件

在计算机中,算法是不可或缺的一环。在认识了算法的定义之后,我们再来看看算法必须符合的5个条件。

算法特性内容说明
输入(Input)0个或者多个输入数据,这些输入必须有清楚的描述和定义
输出(Output)至少会有一个输出结果,不能没有输出结果
明确性(Definiteness)每一条指令或者每一个步骤必须是简洁明确的
有限性(Finiteness)再有限步骤后一定会结束,不会产生无限不循环
有效性(Effectiveness)步骤清楚且可行,只要时间允许,用户就可以用纸笔计算而求出答案

三、伪语言(Pseudo-Language)

算法可以用可读性高的高级语言或者伪语言来描述或者表达,以下算法是python语言描述,用于计算传入的两个数x,y,求取x的y次方。
代码如下(示例):

def pow(x,y):
	p=1
	for i in range(1,y+1):
		p *= x
	return p
print(pow(4,3))

伪语言是一种非常接近高级程序设计语言但不能直接放在计算机中执行的语言,一般需要一种特殊的预处理器(preprocessor)或者人工编写转换成真正的计算机语言。经常使用的伪语言有SPARKS、PASCAL-LINK等。


四、时间复杂度

评估一个算法的好坏,可以利用算法执行步骤的计数来作为衡量运行时间的标准。
时间复杂度:
在一个完全理想状态下的计算机中,使用t(n)表示程序执行所需要花费的时间,其n表示输入数据量。程序的最坏运行时间或者最大运行时间是时间复杂度的衡量标准。

Big-Oh说明
o ( 1 ) o(1) o(1)常数时间表示算法的运行时间是一个常数倍
o ( n ) o(n) o(n)线性时间表示执行时间会随数据集合的大小而线性增加
o ( l o g 2 n ) o(log_2n) o(log2n)次线性时间表示成长速度比线性时间慢,比常数时间快
o ( n 2 ) o(n^2) o(n2)平方时间表示算法的运行时间会呈现二次方增长
o ( n 3 ) o(n^3) o(n3)立方时间表示算法的运行时间会呈现三次方增长
o ( 2 n ) o(2^n) o(2n)指数时间表示算法的运行时间会呈现2的n次方增长,解决NonpolynomialProblem问题算法的时间复杂度为 o ( 2 n ) o(2^n) o(2n)
o ( n l o g 2 n ) o(nlog_2n) o(nlog2n)线性乘对数时间,介于线性和二次方增长的中间模式。

总结

对算法特征以及时间复杂度进行简单介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值