![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python数据结构与算法
文章平均质量分 85
Serein_txw
这个作者很懒,什么都没留下…
展开
-
Python数据结构与算法 6.树与树算法
Python数据结构与算法 6.树与树算法1.树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树;相关术语:节点的度:一个原创 2022-04-01 22:42:46 · 113 阅读 · 0 评论 -
Python数据结构与算法 5.排序与搜索
Python数据结构与算法 5.排序与搜索排序算法的稳定性: 稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。当相等的元素是无法分辨的,比如像是整数,稳定性并不是一个问题。然而,假设以下的数对将要以他们的第一个数字来排序。(4, 1) (3, 1) (3, 7)(5, 6)在这个状况下,有可能产生两种不同的结果,一个是让相等键值的纪录维持相对的次序,而另外一个则没有:原创 2022-03-30 21:45:32 · 89 阅读 · 0 评论 -
Python数据结构与算法 4.栈与队列
Python数据结构与算法 4.栈与队列栈栈(stack),有些地方称为堆栈,是一种容器,是用来保存线性数据的,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,top)进行加入数据(push)和输出数据(pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。当线性表(顺序表、链表)变为只能从一端操作时就变为了栈。栈描述的是数据操作,而线性表描述的是数据存放。由于栈数据结构只允许在一端进行操作,因原创 2022-03-27 23:03:32 · 101 阅读 · 0 评论 -
Python数据结构与算法 3.链表
Python数据结构与算法 3.链表为什么需要链表:顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。链表的定义:链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址),也就是数据区+链接区的形式。单向链表单向链表也叫单链表,是链表中最简单的一种形式,原创 2022-03-25 22:58:09 · 1646 阅读 · 0 评论 -
Python数据结构与算法 2.顺序表
Python数据结构与算法 – 顺序表顺序表的基本形式图(a)表示的是顺序表的基本布局,数据元素本身连续存储,每个元素所占的存储单元大小固定相同,元素的下标是其逻辑地址,而元素存储的物理地址(实际内存地址)可以通过存储区的起始地址 Loc (e0) 加上逻辑地址(第i个元素)与存储单元大小(c)的乘积计算而得,即:Loc(ei) = Loc(e0) + c×i因此,访问指定元素时无需从头遍历,通过计算便可获得对应地址,其时间复杂度为O(1)。列表的顺序标记 Li [ i ] 中的 i 可以理解原创 2022-03-22 14:20:47 · 210 阅读 · 0 评论 -
Python数据结构与算法 1.引入概念
Python数据结构与算法 – 引入概念第一次尝试题目:如果a+b+c=1000,且a2+b2=c2 (a,b,c为自然数),如何求出a、b、c可能的组合?枚举法:a=0,b=0,c=0开始,将c从0到1000枚举,将b变为1,c从0到1000枚举…import timestart_time = time.time()for a in range(0,1001): for b in range(0,1001): for c in range(0,1001): if a + b原创 2022-03-21 23:14:06 · 1521 阅读 · 0 评论