数据结构与算法
文章平均质量分 67
pudding666
这个作者很懒,什么都没留下…
展开
-
树与树算法
树与树算法树树的概念树的术语树的种类树的存储与表示树的应用场景二叉树二叉树的性质二叉树的节点表示以及树的创建二叉树的遍历深度优先遍历广度优先遍历测试树树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个原创 2022-03-06 00:41:26 · 455 阅读 · 0 评论 -
算法:排序与搜索
排序与搜索排序冒泡排序运作方式分析实现时间复杂度选择排序运作方式分析插入排序快速排序希尔排序归并排序常见排序算法效率比较搜索排序排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。排序算法的稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。当相等的元素是无法分辨的,比如像是整数,稳定性并不是一个问题。然而,假原创 2022-03-04 12:10:57 · 110 阅读 · 0 评论 -
数据结构:栈与队列
栈与队列栈栈的实现队列队列的实现双端队列双端队列的实现栈栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。栈的实现cl原创 2022-03-03 19:12:19 · 86 阅读 · 0 评论 -
数据结构:单向循环链表
单向循环链表单向循环链表节点实现单向循环链表实现测试总结单向循环链表单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。节点实现class Node(object): def __init__(self,item): self.item = item self.next = None单向循环链表实现class SinCycLinkedlist(object): """单向循环链表"""原创 2022-03-03 18:03:52 · 308 阅读 · 0 评论 -
数据结构:双向链表
双向链表双向链表节点实现双向链表实现测试双向链表一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。需要注意的是,两个链接都是指向一个节点对象,而非上一节点的next域指向下一节点的prev域!节点实现class Node(object): def __init__(self,item): self.item = item s原创 2022-03-03 16:33:55 · 79 阅读 · 0 评论 -
数据结构:单链表
单链表单项链表节点实现单链表实现测试代码解析经验总结链表与顺序表的区别链表与顺序表统称为线性表。单项链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。表元素域elem用来存放具体的数据。链接域next用来存放下一个节点的位置(python中的标识)变量p指向链表的头节点(首节点)的位置,从p出发能找到表中的任意节点。节点实现# 节点实现class S原创 2022-03-02 21:16:36 · 364 阅读 · 0 评论 -
数据结构:顺序表
顺序表顺序表的基本形式顺序表的结构与实现顺序表的结构顺序表的两种基本实现方式元素存储区替换元素存储区扩充顺序表的操作增加元素删除元素Python中的顺序表list的基本实现技术在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化(可以增加或删除元素)。对于这种需求,最简单的解决方案便是将这样一组元素看成一个序列,用元素在序列里的位置和顺序,表示实际应用中的某种有意义的信息,或者表示数据之间的原创 2022-03-02 14:30:39 · 248 阅读 · 0 评论 -
数据结构引入
数据结构引入概念算法与数据结构的关系抽象数据类型概念算法与数据结构的关系抽象数据类型原创 2022-03-01 18:33:31 · 205 阅读 · 0 评论 -
算法:Python与时间复杂度
Python与时间复杂度Python内置性能分析timeit模块list内置操作的时间复杂度dict内置函数复杂度Python内置性能分析函数是对基本操作的封装,不能直接将函数看为一个基本操作!timeit模块from timeit import TimerTimer(stmt='pass', setup='pass', timer=<timer function>)// stmt : 要测试的代码语句,封装成函数// 'pass': 字符串// setup : 引入要测原创 2022-03-01 18:11:20 · 689 阅读 · 0 评论 -
算法:时间复杂度
算法:时间复杂度时间复杂度和“大O记法”最坏时间复杂度时间复杂度的几条基本计算规则常见时间复杂度常见时间复杂度之间的关系时间复杂度和“大O记法”单纯依靠运行时间来比较算法的优劣并不一定客观准确,因为程序的运行离不开计算机的环境(包括硬件和操作系统),这些客观因素会影响计算速度,因此,我们引出了“大O记法”。最坏时间复杂度时间复杂度的几条基本计算规则for i in range(1,n): for j in range(1,n): k = 1000 - i - j原创 2022-03-01 10:35:35 · 256 阅读 · 0 评论