自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Python学习数据结构之二叉堆

二叉堆:二叉堆是一种有树形,但是没有树体的数据结构。它在本质上是一种优先级队列。我们知道队列是一种先进先出的数据结构的,它的元素顺序取决于入队的顺序。但是二叉堆有一点不同,就是它的元素顺序取决于优先级,也就是说入队的时候已经找到了唯一且固定的位置安置这个元素。就时间复杂度而言,二叉堆在出入队的操作是O(log n),这是很低的数值了。二叉堆分为最大堆和最小堆。最大堆的意思就是队列的最大节点永...

2020-02-18 14:57:47 156

原创 Python学习算法之顺序搜索与二分搜索

顺序搜索:我们首先来看顺序搜索,这是一种简单的搜索形式。遍历整个无序数组,如果找到目标元素返回True,未找到则返回Falsepython实现:def shunXu(alist,num): J = False i = 0 while not J and i < len(alist): if alist[i] == num: ...

2020-02-17 22:32:28 324

原创 Python学习算法之选择排序

选择排序:选择排序是六种基本排序方式中的一种,与冒泡排序类似,但是规避了冒泡排序一个元素需要多次交换顺序的缺点。选择排序每次遍历找到当前列表中最大的值与尾部交换,而后数组长度减一,直到达到首位元素退出循环。python 实现:def xuanZe(List): for pos in range (len(List)-1,0,-1): Max = 0 ...

2020-02-17 21:49:34 110

原创 短冒泡排序

python实现短冒泡排序冒泡排序是常用的排序算法之一,但是它过于低效。通常的冒泡排序有两大缺点:第一:是每一个元素都需要经过若干次交换才能找到自己的位置,尤其是位于前端的较大的元素。第二:假如数组在冒泡排序的途中已经排好了正确的顺序,算法还是会迭代直到最后第一个元素,造成了时间性能上的浪费。短冒泡排序是针对第二种情况提出的解决方案,加入一个布尔型变量,记录本次循环是否存在交换现象,如果一...

2020-02-17 14:22:35 259

原创 Python学习算法之冒泡排序

冒泡排序冒泡排序是六种基本排序算法之一,比较方式是在数组中每次比较相邻两个元素的大小,并且互相交换顺序,每迭代一次选出当前列表里的最大元素,知道列表长度为1(即选出最小元素为止)python实现:#向函数传入数组def maoPao(List): #控制迭代次数 for pos in range(len(List),0,-1): #两两比较,前大于后则互换数值 ...

2020-02-17 13:34:03 93

原创 Python学习数据结构之(节点)树

节点与引用构成树:我们定义一个具有根节点和引用(具有左右子树)的类。左右节点指向其他的节点与引用实例。随着数据得添加持续向下引用节点,构成完整的树结构。python实现:...

2020-02-17 12:04:17 695

原创 Python学习数据结构之(列表)树

列表之列表构成树使用列表之列表和节点法都可以完成树的构建。树是一种很常见的数据结构,它在维持算法的有序性上具有巨大作用。话不多说上代码:...

2020-02-17 10:07:41 262

原创 约瑟夫斯问题,十步杀一人(环形队列)

Python实现环性队列,解决约瑟夫斯站位问题弗拉维奥·约瑟夫斯是公元1世纪著名的历史学家。相传,约瑟夫斯当年和39个战友在山洞中对抗罗马军队。眼看着即将失败,他们决定舍生取义。于是,他们围成一圈,从某个人开始,按顺时针方向杀掉第7人。约瑟夫斯同时也是卓有成就的数学家。据说,他立刻找到了自己应该站的位置,从而使自己活到了最后。当只剩下他时,约瑟夫斯加入了罗马军队,而不是自杀。这个故事有很多版本,...

2020-02-16 18:53:44 838

原创 Python学习数据结构之链表

Python学习数据结构之链表:链表是一种无序的数据结构,这里的顺序是指在计算机内存空间中是否保持相应的连续顺序。可以将链表看成是无序的列表。链表中的每一个元素必须维护与下一个元素的关系,即储存下一个元素的内存地址。在这里我们可以想象数组是一串连续的储存空间,而链表是一串间断性的储存空间。故而链表对于内存空间的利用要优于数组。链表的python实现:链表是一种类栈结构,应该想象成向麻袋...

2020-02-16 15:52:20 86

原创 Python学习数据结构之双端队列

Python学习数据结构之双端队列:双端队列是栈和队列的结合体,在首尾都可以添加和删减元素,属于有序集合。让我们使用Python实现一下:class Deque : #初始化: def __init__(self): self.items = [] #判断是否为空: def isempty(self): return self...

2020-02-16 10:30:19 86

原创 python学习数据结构之队列

Python学习数据结构之队列 队列是一种很基本的数据结构 它属于有序集合的一种,顺序取决于元素在添加时的顺序 它的添加操作总是发生在队尾,移除操作则发生在队顶,可以形象地想象为大家在排队,排在最前面的人肯定最先接受服务,最先离开。FIFO: first in first out##话不多说,下面我们用蛇语实现一下:class Queue: def __init__(sel...

2020-02-15 22:42:21 81

原创 python学习数据结构之栈

Python 数据结构之栈: 栈属于有序集合,它的顺序取决于元素添加的顺序,即先进后出,可以形象地想象为乘坐电梯,最先进去的人总是最后一个走出电梯的,这便是栈。FILO:first in last out 栈的移除和添加操作总是发生在顶端,下面我们用python实现一下代码如下:class Stack(): #初始化: def __init__(self): ...

2020-02-15 11:26:51 114

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除