❤数据结构&算法
高岩_deal
is ME.
展开
-
数据结构(一)单向链表的的分析与python代码实现
概念 单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。结构 代码实现class Node(object): """实现单链表节点""" def __init__(self, item): # item存...原创 2019-01-04 16:37:29 · 263 阅读 · 0 评论 -
数据结构(二)双向链表的的分析与python代码实现
概念 每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。特点: 节点包含三个域,一个元素域,两个链接域(前驱和后继),第0个节点没有前驱,最后一个节点没有后继,在单链表的基础上,增加向前指向的考虑。结构python代码实现 class Node(object):...原创 2019-01-04 20:07:58 · 304 阅读 · 0 评论 -
数据结构(三)单向循环链表的的分析与python代码实现
概念单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。节点包含两个域:元素域和链接域(下一个节点),尾节点next指向第0个节点,当链表只有一个节点时,自己的next指向自己,基于单链表的基础上,增加考虑首节点和尾节点的情况。结构python代码实现class Node(object): def __init__(...原创 2019-01-04 20:32:20 · 324 阅读 · 0 评论 -
数据结构(四)python使用顺序表实现栈
概念:栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,按照后进先出(LIFO, Last In First Out)的原理运作。注意:栈不是数据结构,只...原创 2019-01-07 20:30:07 · 1574 阅读 · 1 评论 -
数据结构(五)和顺序表有关的常用概念
什么是数据结构?数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。我们为了解决问题,需要将数据保存下来,然后根据数据的存储方式来设计算法实现进行处理,那么数据的存储方式不同就会导致需要不同的算法进行处理。我们希望算法解决问题的效率越快越好,于是我们就需要考虑数据究竟如何保存的问题,这就是数据结构。如:列表和字典都可以存储一个班的学生信...原创 2019-01-07 21:18:08 · 357 阅读 · 0 评论 -
数据结构(六)python使用顺序表实现队列
概念:队列与后进先出(LIFO, Last In First Out)的栈不同,队列是先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!队列比较符合我们通常生活中的习惯,排在第一个的优先出列,最后来的当然排在队伍最后。应用场景:在web开发中,我们经常会遇到处理批量任务的情况,如:群...原创 2019-01-14 16:07:57 · 458 阅读 · 0 评论 -
数据结构(七)python实现冒泡排序
原理:1、从头开始比较相邻的两个元素,如果前大后小则交换两元素的位置;2、然后拿第1步中大的元素和它后面相邻的元素进行比较,即重复第一步的操作,从第一对一直比较到最后一对,完成后最后的元素就是最大的数;3、对剩余无序序列重复以上的步骤,除了最后一个(第一遍使得最后一个元素已经是最大了)。如图:python实现:def Bubble_sort(li): n = le...原创 2019-01-14 17:33:08 · 270 阅读 · 0 评论 -
数据结构(八)python实现选择排序
原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的后面。依此类推,直到所有元素均排序完毕。首先找到数组中最小的那个元素,其次,将它和第一个元素交换。接下来找第二小和第二个交换......如图:python实现:# 选择排序(升序)def select_sort(li): ...原创 2019-01-14 19:54:10 · 279 阅读 · 0 评论 -
数据结构(九)几种常用排序算法的稳定性分析
什么是稳定性?简单来,要排序的序列有两个相同的数,用A算法进行排序后,两个相等数的位置不会互换,则A算法是稳定的,否则A不稳定。举例:现在要排序1,2,2这三个数,我们用A算法排序,如果排序后两个2的位置不会互换,则A算法是稳定的,如果互换了,则A算法就是不稳定的。稳定排序有哪些:冒泡、插入、归并、二叉树排序都是稳定排序。不稳定排序:快速(快)、选择(选)、希尔(些)排序是...原创 2019-01-14 20:22:00 · 1396 阅读 · 0 评论