08 2018 档案
摘要:插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。时间复杂度最优时间复杂度:O(n) (升序排列,序列已经处于升序状态)最坏时间复杂度:O(n2)稳定性:稳定def insert_so...
阅读全文
摘要:选择排序(select_sort)是一个基础排序,它主要通过查找已给序列中的元素的最大或者最小元素,然后将其放在序列的起始位置或者结束位置,并通过多次这样的循环完成对已知序列的排序,在我们对n个元素进行操作时,我们至少需要n-1次。def select_sort(list): n=len(list) #进行n-1次操作 for i in range(n-1): mi...
阅读全文
摘要:冒泡排序是一种基础排序算法,在python中,我们利用列表的的方式来完成,它对列表中的元素进行重复的遍历,在遍历的同时进行比较,如果两个数没有按照我们规定的顺序进行排列,就按照我们预先设定好的是顺序或者逆序输出,类似于烧开水时的气泡,主要操作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大...
阅读全文
摘要:书接上文,双端队列区别于单队列为:双端队列可以对队列头和尾部同时进行操作,单队列不行#coding:utf-8class DoubleQueue(object): def __init__(self): self.list=[] def empty(self): return self.list==[] def queue_front(self,ite...
阅读全文
摘要:队列概念队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从a1开始,而插入时,总是在队列最后。这也比较符...
阅读全文
摘要:栈栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行操作,因而按照后进先出的原理运作。附上完整代码:cla...
阅读全文
摘要:class SingleNode(object): """单链表的结点""" def __init__(self,item): # _item存放数据元素 self.item = item # _next是下一个节点的标识 self.next = Noneclass SingleLinkList(object): def _...
阅读全文
摘要:单链表结构简单,组成为节点节点实现方法我们采用类进行封装def __init__(self,item): self.item=item self.next=None在这里我们实现对链表的操作时可以参照列表的操作Empty()检查是否为空Length()检查长度Travel()遍历Add(),insert(),append(0实现添加,add对头部操作,insert()指定位置,appe...
阅读全文

浙公网安备 33010602011771号