排序是每一个软件开发工程师都须要掌握的技能,包含Python工程师也是如此,那么Python排序算法有哪些?常见的排序算法分为插入排序、希尔排序、选择排序、冒泡排序、快速排序等,接下来跟着小编深刻了解一下吧。算法
冒泡排序数组
是一种简单直观的排序算法,重复地走访过要排序的数列,一次比较两个元素,若是他们的顺序错误就把他们交换过来。走访数列的工做是重复地进行直到没有再须要交换,也就是说该数列已经排序完成,这个算法名字由来是由于越小的元素会经由交换慢慢浮到数列的顶端。架构
插入排序ide
它的原理应该是最容易理解的,由于只要打过扑克牌的人都应该可以秒懂。插入排序是一种最简单直观的排序算法,它的工做原理是经过构建有序排序,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。排序
希尔排序开发
也被称为递减增量排序算法,是插入排序的一种更高效的改进版本,但希尔排序是非稳定排序算法。希尔排序是基于插入排序的如下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操做时,效率高,便可以达到线性排序的效率;但插入排序通常来讲是低效的,由于插入排序每次只能将数据移动一位。字符串
归并排序it
是创建在归并操做上的一种有效的排序算法,该算法是采用分治法的一个很是典型的应用,做为一种典型的分而治之思想的算法应用。class
快速排序效率
快速排序是由东尼·霍尔所发展的一种排序算法。在平均情况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏情况下则须要 Ο(n2) 次比较,但这种情况并不常见。事实上快速排序一般明显比其余 Ο(nlogn) 算法更快,由于它的内部循环能够在大部分的架构上颇有效率地被实现出来。
计数排序
计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。做为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有肯定范围的整数。
基数排序
基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不一样的数字,而后按每一个位数分别比较。因为整数也能够表达字符串和特定格式的浮点数,因此基数排序也不是只能使用于整数。