![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python基础的数据结构
笔记
qq_42749341
这个作者很懒,什么都没留下…
展开
-
python数据结构7 树与树算法
树与树算法树树得概念树的术语树的种类树的存储与表示常见的一些树的应用场景二叉树二叉树的基本概念二叉树的性质(特性)二叉树的节点表示以及树的创建 树 树得概念 树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 每个节点有零个或多个子节点; 没有父节点的节点称为根节点; 每一个非根节原创 2020-06-30 11:21:12 · 155 阅读 · 0 评论 -
python数据结构7 排序 (归并排序,二分查找)
排序,搜索归并排序归并排序的分析代码实现时间复杂度排序总结搜索二分法查找二分法查找实现(非递归实现)(递归实现)时间复杂度 归并排序 归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。 将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。 归并排序的分析 代码实现 def merge_sort(alist): """归并排原创 2020-06-28 17:51:01 · 187 阅读 · 0 评论 -
python数据结构6 排序(4、希尔排序 5、快速排序)
排序4、希尔排序希尔排序过程希尔排序的分析代码实现 4、希尔排序 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 希尔排序过程 希尔排序的基本思想是:将数组列在一个表中并对列分别进行插入排序,重复这过程,不过原创 2020-06-27 16:51:12 · 102 阅读 · 0 评论 -
python数据结构5.2 排序(1、冒泡排序 2、选择排序 3、插入排序)
这里写目录标题排序与搜索排序算法的稳定性1、冒泡排序冒泡排序的分析代码实现时间复杂度2、选择排序选择排序的分析代码实现时间复杂度3、插入排序插入排序分析代码实现时间复杂度快速排序 排序与搜索 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。 当相等的原创 2020-06-25 08:56:56 · 123 阅读 · 0 评论 -
python数据结构5 栈
这里写目录标题栈栈结构的实现栈的操作 栈 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。 由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。 栈结构的实现 栈可以用顺序表实现,也原创 2020-06-25 08:57:28 · 110 阅读 · 0 评论 -
python数据结构4 双向链表+单向循环链表
双向链表+单向循环链表双向链表操作节点实现头插法、尾插法指定位置插入节点单向循环链表操作节点实现链表长度遍历列表头插法、尾插法在指定位置添加元素删除元素查找元素 双向链表 一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点(前驱节点),当此节点为第一个节点时,指向空值;而另一个指向下一个节点(后继节点),当此节点为最后一个节点时,指向空值。 操作 is_empty() 链表是否为空 length() 链表长度 travel() 遍历链表 add(item) 链表头部添加原创 2020-06-23 11:02:37 · 135 阅读 · 0 评论 -
python数据结构3 链表
链表链表为什么需要链表链表的定义单向链表单链表的操作节点实现单链表的操作单链表的实现头部添加元素(头插法)尾部添加元素(尾插法)指定位置添加元素删除节点查找节点是否存在链表与顺序表的对比 根据线性表的实际存储方式分为两种实现模型: **顺序表:**将元素顺序的存放在一块连续的存储区里,元素间的顺序关系由他们的存储顺序自然表示。 **链表:**将元素存放在通过链接构造起来的一系列存储块中。 链表 为什么需要链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所原创 2020-06-22 21:19:17 · 128 阅读 · 0 评论 -
python数据结构2 顺序表
循序表1、顺序表的基本形式2、顺序表的结构与实现顺序表的结构顺序表的两种基本实现方式元素存储区替换元素存储区扩充顺序表的操作增加元素删除元素python中的顺序表List的基本实现技术 1、顺序表的基本形式 图a表示的是顺序表的基本形式,数据元素本身连续存储,每个元素所占的存储单元大小固定相同,元素的下标是其逻辑地址,而元素存储的物理地址(实际内存地址),可以通过存储区的起始地址Loc(e0)加上逻辑地址(第i个元素)与存储单元大小(c)的乘积计算而得,即 Loc(ei)=Loc(e0)+c*i 故,访问原创 2020-06-22 15:09:32 · 135 阅读 · 0 评论 -
python数据结构1 算法的引入
第一天 1、 算法的引入 (1) 算法的概念:算法是计算机处理信息的本质,因为计算机程序本质上是一个算的发来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。 (2) 算法是独立存在的一种解决问题的方法和思想,和语言无关 (3) 算法的五大特征 A. 输入:算法具有0个或多个输入 B. 输出:算法至少有1个或多个输出 C. 有穷性:算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的原创 2020-06-20 11:51:58 · 188 阅读 · 0 评论