文章 2023-05-27 来自:开发者社区

Python3 数据结构与算法之枚举

何为数据结构?数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。Python提供了很多现成的数据结构类型,这些系统自己定义好的,不需要我们自己去定义的数据结构叫做Python的内置数据结构,比如列表、元组、字典。而有些数据组织方式,Python系统里面没有直接定义,需要我们自己去定义实现这些数据的组织方式,这些数据组织方式称....

文章 2022-12-11 来自:开发者社区

Python数据结构与算法(20)---插值查找

插值查找插值查找,又名Interpolation Search,是基于有序数列的元素查找,在采用二分查找算法的思想上进行了改进。其在最小值与最大值范围内,用公式确定中间分割比较点mid。这里,我们具体的插值公式如下所示:其时间复杂度为:O(loglogN)。插值查找公式计算假设,我们的数列还是[1,3,5,7,9,11,13],我们还是需要查找数值13。那么,根据上面的公式(left=0,rig....

Python数据结构与算法(20)---插值查找
文章 2022-12-11 来自:开发者社区

Python数据结构与算法(19)---二分查找

二分查找二分查找又名Binary Search,其采用折半的查找方式,实现对有序元素的快速查找。相信看到上面二分查找的定义,读者很容易就能想到,二分查找有一个非常重要的前提条件,那就是其需要已经排序好的数列。这样,我们折半查找可以缩小查找的次数,更加的高效。其具体原理:在数列中取中间下标值mid的元素e,进行查找元素key的比较。如果相等即查找成功,如果不等,大于就只需要在后半部分查找,小于需要....

Python数据结构与算法(19)---二分查找
文章 2022-12-11 来自:开发者社区

Python数据结构与算法(18)---检索算法

检索算法数据结构的排序算法,到17篇归并排序就彻底讲解完成。从今天开始,我们将进入全新的数据结构知识,它的名字叫查找算法,也叫检索算法。检索算法又分为排序检索与非排序检索。排序检索顾名思义就是先排序在进行查找,在数据库的查找中,我们往往都是这么做的。当然非排序检索也存在,只不过效率非常低。检索算法包括线性查找、二分查找、插值查找、斐波拉契查找、分块查找、哈希查找以及回溯查找7个算法。所以,从18....

Python数据结构与算法(18)---检索算法
文章 2022-12-11 来自:开发者社区

Python数据结构与算法(17)---归并排序

归并排序归并排序,又名Merge Sort,是建立在归并操作上的一种有效的排序算法。其具体原理有2个关键字:分与治。分:我们需要进行分的操作,将数列均衡的分成2部分(n//2),当然如果是奇数,可以自己决定将多余的数分到前半部分,还是后半部分。当分成2部分之后,在递归的对左右子序列继续2分,以此类推,直到只有1个元素,再也分不下去。治:所有元素分完之后,开始大小比较归并操作,从2个元素开始进行归....

Python数据结构与算法(17)---归并排序
文章 2022-12-11 来自:开发者社区

Python数据结构与算法(16)---快速排序

快速排序快速排序,又称Quick Sort,其本身对冒牌排序进行了相应的改进。其基本原理:通过一轮排序将要排序的数据分割成独立的2个部分,其中一部分的所有数据都比另外一部分的所有数据小,然后再按照此放法对2部分数据分别进行快速排序,整个排序过程可以递归进行,直到整个数据变成有序序列。具体算法实施过程如下:1.首先,选取列表的最后一个元素最为基准数N,小于N的放前边,大于等于N的放后面。2.然后,....

Python数据结构与算法(16)---快速排序
文章 2022-12-11 来自:开发者社区

Python数据结构与算法(15)---希尔排序

希尔排序希尔排序,又称作Shell Sort,也叫缩小增量排序算法,是前文讲解的插入排序更高效的一种排序算法。其原理是:在n个元素的列表里,取增量n/2。数列开始值与增量值的尾值进行比较,小的放前面,大的放后面;把增量的前后都比较一遍,然后增量数-1。继续从头到尾进行比较,并调整大小;一直到增量等于1,就完成了所有列表元素的排序。至于增量规则可以自行定义。图解写入排序假设,又一个列表为[8,0,....

Python数据结构与算法(15)---希尔排序
文章 2022-12-11 来自:开发者社区

Python数据结构与算法(14)---插入排序

插入排序插入排序,又名Insertion Sort,其原理是数列前面为排序完成的值,数列后面为未排序的值。假设前面n-1(其中 n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。按照此法对所有元素进行插入,直到整个序列排为有序的过程,称为插入排序。图解插入排序原理过程如下:1.输入n个数值的列表2.接着,....

Python数据结构与算法(14)---插入排序
文章 2022-12-11 来自:开发者社区

Python数据结构与算法(13)---选择排序

选择排序选择排序,英文称为Selection Sort,它是另外一种简单的排序算法。在数据集合中,通过一轮的新循环找到最小值,把它放到第一个位置,然后在剩余的数据中再找最小值,放到第二个位置,直到所有排序完成。选择排序原理假设,Python有一个n个元素的列表。那么实现步骤分为3步骤:1.外层开启0到n-1的循环2.每轮循环记住最小值的下标,循环完成后,将值放在最前面3.接着继续循环,标记最小值....

Python数据结构与算法(13)---选择排序
文章 2022-12-11 来自:开发者社区

Python数据结构与算法(12)---冒泡排序

冒泡排序冒泡排序,其英文为Bubble Sort。是指把一组数据从左边开始依次进行两两交换,小的方前面,大的放后面,通过反复比较一直到没有数据需要交换为止。该排序方法由于很像水里的泡泡,从水底冒出的,故称之为冒泡排序。冒泡排序原理冒牌排序的原理如下:1.从列表开始,依次两两比较值的大小,把大的往后交换,一直到末尾,这样列表中最大的值肯定就是末尾的值。2.接着,在从列表开始,两两比较知道交换到倒数....

Python数据结构与算法(12)---冒泡排序

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Python学习站

Python学习资料大全,包含Python编程学习、实战案例分享、开发者必知词条等内容。

+关注
相关镜像