当前位置: 首页 > 后端技术 > Python

Python中最常用的10种排序算法!

时间:2023-03-26 14:58:50 Python

python的排序算法有哪些?python中常见的排序算法有:插入排序、选择排序、冒泡排序、快速排序、归并排序、希尔排序等,下面我们就来看看具体的介绍。  第一种:插入排序  从第二个元素开始,和前一个元素比较。如果前一个元素大于当前元素,则前一个元素向后移动,当前元素依次向前移动,直到找到比当前元素大的元素。在其后面插入其小于或等于它的元素,然后选择第三个元素,重复以上操作,插入,依次选择最后一个元素,插入后完成所有排序。  第二种:选择排序  将第一个元素设置为比较元素,依次与后面的元素进行比较,所有元素比较后找到最小的元素,与第一个元素交换,重复上述操作,我们找到第二小的元素并交换第二个位置的元素,以此类推找到剩余的最小元素并将其替换到最前面,即完成排序。  第三种:冒泡排序  冒泡排序也是一种简单直观的排序算法。它迭代遍历要排序的数组,一次比较两个元素,如果顺序错误则交换它们。重复访问序列的工作,直到不需要交换,即序列已经排序。这个算法的名字来源于这样一个事实,即较小的元素会通过交换慢慢浮到序列的顶部。  第四种:QuickSort  QuickSort采用分而治之的策略,将一个序列分成越来越小的子序列,然后对这两个子序列进行递归排序。  第五:归并排序  归并排序是在归并操作上创建的一种有效的排序算法。该算法是分治法的一个非常典型的应用。  分而治之:  分割:递归地将当前序列分成两半  整合:整合上一步得到的子序列,同时保持元素的顺序(合并)  th六种:山排序  希尔排序是一种基于插入排序的改进算法,因为当数据移动的次数过多时,会导致效率低下。所以我们可以先把数组整体做的有序(开始移动的幅度大一些,然后小一些),这样移动的次数就会减少,从而提高效率。  第七种:基数排序基数排序属于分布排序,也称为桶法或binsort。顾名思义,它通过键值的部分信息,将待排序的元素分布到一定的桶中,从而实现排序。基数排序法的作用是一种稳定的排序方法,其时间复杂度为O(nlog(r)m),其中r是使用的基数,m是堆的数量。在某些时候,基数排序方法的效率高于其他稳定性排序方法。  第八种:计数排序  计数排序的核心是将输入的数据值转换为key,存放在附加的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入数据必须是一定范围内的整数。  第九:堆排序  堆排序是指利用堆的数据结构设计的一种排序算法。堆叠是一种近似完全二叉树的结构,同时满足堆叠的性质:即子节点的键值或索引总是小于(或大于)其父节点。堆排序可以说是利用堆的概念进行排序的一种选择排序。  第十种:桶排序  为了节省篇幅和时间,我们需要指定待排序数据中数的最小值和最大值,以方便桶排序算法的运行。以上就是本次分享的全部内容。现在想学习编程的朋友欢迎关注Python技术大本营获取更多技能和教程。以上就是本次分享的全部内容。现在想学习编程的朋友欢迎关注Python技术大本营获取更多技能和教程。