码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构与算法入门-算法介绍(python版本)

时间:2020-02-29 20:30:36      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:占用内存大小   图片   输出   ext   静态   ann   back   int   text   

//2020.02.29
数据结构与算法入门(python版本)
第1章 评判算法的优劣指标有哪些?
课时1:算法的基本概念

技术图片
1、算法Algorithm是一个计算过程,是指解决一个问题的方法.
2、数据结构是指数据存储的一种结构方式,是静态的.
3、程序=数据结构+算法(尼古拉斯凯奇说过的一句著名的话).
课时2:时间复杂度介绍

技术图片
1、估计不同算法运行的快慢方式:时间复杂度
2、时间复杂度是指:用来评估算法运行效率的一个式子(单位),与电脑的配置无关,与算法的运行量无关;

技术图片
3、时间复杂度的表示方法一般使用O(n)来表示,其中O表示估计的意思,括号里的n表示计算算法复杂度大小的式子,O(1)中的1表示的是一个运行单位,不是1秒;

技术图片
4、判断时间复杂度的方法:
(1)一般确定问题的规模n;
(2)循环减半过程logn;
(3)k晨关于n的循环就是n的k次方

技术图片
课时3:空间复杂度介绍
1、空间复杂度:用来评估算法占用内存大小的式子(n不同,内存占用不同
2、空间复杂度表示方法与时间复杂度完全一样

3、原则:空间换时间,争取用户时间最短。

技术图片
课时4:汉诺塔问题的算法递归讲解

技术图片

技术图片

 

 

技术图片

技术图片

1、递归式子:h(n)=2h(n-1)+1
2、使用递归算法可以实现计算

python实现汉诺塔问题递归算法:

#递归算法计算
#汉诺塔问题的递归算法
def hannuota(n,a,b,c):
if n>0:
hannuota(n-1,a,c,b)
print("moving from %s to %s" % (a,c))
hannuota(n-1,b,a,c)
hannuota(3,"A","B","C")

#函数递归算法f(n)与f(n-1)的关系知道
def f(n):
if n==1:
return 1
else:
return 2*f(n-1)+1
print("输出结果为:%d" %f(64))
技术图片

数据结构与算法入门-算法介绍(python版本)

标签:占用内存大小   图片   输出   ext   静态   ann   back   int   text   

原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/12384795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!