![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
lmw-xiaoxin
这个作者很懒,什么都没留下…
展开
-
python-实现汉诺塔问题
一、题目n=2时: 1.把小圆盘从A移动到B 2.把大圆盘从A移动到C 3.把小圆盘从B移动到Cn个盘子时: 1.把n-1个圆盘从A经过C移动到B 2.把第n个圆盘从A移动到C 3.把n-1个小圆盘从B经过A移动到C二、代码实现(打印执行步骤)汉诺塔移动次数的递推式:2^n-1def hanol(n,a,b,c):原创 2018-01-31 19:27:59 · 443 阅读 · 0 评论 -
python-实现二分搜索
一、介绍顺序查找 从列表第一个元素开始,顺序进行搜索,直到找到为止。二分查找 从有序列表的候选区data[0:n]开始,通过对待查找的值与 候选区中间值的比较,可以使候选区减少一半。二、图示三、代码实现li=[1,2,3,4,5,6,7,8,9]方式一:时间复杂度 O(n) def linear_search(data_set, value): for原创 2018-01-31 20:20:18 · 308 阅读 · 0 评论 -
python-递归与二分法
一 、递归调用的定义#递归调用是函数嵌套调用的一种特殊形式,函数在调用时,直接或间接调用了自身,就是递归调用二、递归分为两个阶段:递推,回溯#图解。。。# salary(5)=salary(4)+300# salary(4)=salary(3)+300# salary(3)=salary(2)+300# salary(2)=salary(1)+300# salary(1)=100原创 2018-02-01 01:04:47 · 373 阅读 · 0 评论 -
python-实现排序low B三人组
一、排序low B三人组:冒泡排序选择排序插入排序二、冒泡排序思路首先,列表每两个相邻的数,如果前边的比后边的大,那么交换这两个数 代码关键点: 趟 无序区li=[1,9,2,8,3,6,4,5,7]def bubble_sort(li): for i in range(len(li)-1): state=False #如果已经排序好,时原创 2018-01-31 23:54:04 · 250 阅读 · 0 评论 -
python-实现排序之NB三人组
排序NB三人组:快速排序堆排序归并排序三种排序算法的时间复杂度都是O(nlogn)一般情况下,就运行时间而言: 快速排序 < 归并排序 < 堆排序三种排序算法的缺点: 快速排序:极端情况下排序效率低 归并排序:需要额外的内存开销 堆排序:在快的排序算法中相对较慢一、快速排序思路:取一个元素p(第一个元素),使元素p归位;列表被p分成两部分,左边都比p小原创 2018-02-01 17:54:18 · 256 阅读 · 0 评论 -
python-实现希尔排序
一、希尔排序思路:希尔排序是一种分组插入排序算法。 首先取一个整数d1=n/2,将元素分为d1个组,每组相邻量元素之间距离为d1, 在各组内进行直接插入排序;取第二个整数d2=d1/2,重复上述分组排序过程, 直到di=1,即所有元素在同一组内进行直接插入排序。希尔排序每趟并不使某些元素有序,而是使整体数据越来越接近有序;最后一趟排序使得所有数据有序。 图解:-原创 2018-02-01 19:29:51 · 235 阅读 · 0 评论 -
python-位移运算
原创 2018-02-01 20:16:15 · 3439 阅读 · 0 评论