数据结构
qwerLoL123456
这个作者很懒,什么都没留下…
展开
-
排序算法
1、冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。 它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 直到没有再需要交换,该数列排序完成升序排序过程 比较相邻的元素。如果第一个比第二个大,就交换他们两个 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了...原创 2018-09-11 17:51:25 · 179 阅读 · 0 评论 -
单向链表
"""__title__ = ''__author__ = 'Thompson'__mtime__ = '2018/6/14'# code is far away from bugs with the god animal protecting I love animals. They taste delicious. ┏┓ ┏┓ ...原创 2018-09-10 21:29:47 · 118 阅读 · 0 评论 -
双向链表
class Node(object): #节点的类 def __init__(self,item): self.item = item self.prev = None self.next = Noneclass DLinkList(object): #双向链表的类 def __init__(self): ...原创 2018-09-10 22:10:52 · 121 阅读 · 0 评论 -
二分查找
二分查找法优点:比较次数少,查找速度快,平均性能好;缺点:要求待查表为有序表,且插入删除困难。使用场景:适用于不经常变动而查找频繁的有序列表原理:假设要搜索的表中元素是按升序排列a、将表中间位置记录的关键字与查找关键字比较b、如果两者相等,则查找成功;c、否则利用中间位置记录将表分成前、后两a个子表d、如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否...原创 2018-09-14 09:40:02 · 157 阅读 · 0 评论 -
树
1、树是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。 它是由n(n>=1)个有限节点组成一个具有层次关系的集合 它看起来像一棵倒挂的树,根朝上,叶朝下。特点: 每个节点有零个或多个子节点; 没有父节点的节点称为根节点; 每一个非根节点有且只有一个父节点; 除了根节点外,每个子节点可以分为多个不相交的子树;节点的度:一个节点含有的子...原创 2018-09-14 10:08:05 · 132 阅读 · 0 评论 -
栈
1、栈,又称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素。栈只允许在容器的一段进行插入数据和输出数据。栈先进后出,后进先出2、栈的操作有:Stack() 创建一个新的空栈push(item) 添加一个新的元素item到栈顶pop() 弹出栈顶元素peek() 返回栈顶元素is_empty() 判断栈是否为空size() 返回栈的大小3、栈的实现cla...原创 2018-10-04 16:29:01 · 158 阅读 · 0 评论 -
队列
1. 队列(queue)假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。 删除时,总是从a1开始,而插入时,总是在队列最后。 符合我们的习惯,排在第一个的优先出列,最后来的当然排在队伍最后。2. 队列操作Queue() 创建一个空的队列enqueue(item) 往队列中添加一个item元素dequeue() 从队列头部删除一个元素is...原创 2018-10-04 16:42:41 · 165 阅读 · 0 评论 -
双端队列
1. 双端队列(deque,全名double-ended queue),是一种具有队列和栈的性质的数据结构。 双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。 双端队列可以在队列任意一端入队和出队。2. 操作Deque() 创建一个空的双端队列add_front(item) 从队头加入一个item元素add_rear(item) 从队尾加入一个item元素...原创 2018-10-04 16:48:31 · 984 阅读 · 1 评论 -
时间复杂度
1、时间复杂度定义:在计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间。时间复杂度常用大O符号表述。 如果一个问题的规模是n,解这一问题的某一算法所需要的时间为函数T(n),若有某个辅助函数f(n),使得T(n)/f(n)的极限值(当n趋近于无穷大时)为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复...原创 2018-10-04 17:06:43 · 247 阅读 · 0 评论