1、冒泡排序
它反复访问要排序的元素列,并依次比较两个相邻的元素。如果顺序(如从大到小)错了,就交换它们。访问元素的工作是反复进行,直到没有相邻元素需要交换,也就是说元素列已经排序完成。
2、选择排序
首次从待排序的数据元素中选择最小(或最大)的元素,存储在序列的开始位置,然后从剩余的未排序元素中找到最小(大)元素,然后放在已排序的末尾。直到所有元素都被排序。
3、插入排序
对于未排序的数据,通过构建有序的序列,在已排序的序列中从后向前扫描,找到相应的位置并插入。插入式排序在实现上,在从后向前扫描的过程中,需要反复将已排序的元素逐步向后移动,为最新的元素提供插入空间。
4、快速排序
将要排序的数据通过一次排序分成两个独立的部分,其中一个部分的所有数据都小于另一个部分的所有数据,然后按照这种方法对这两个部分的数据进行快速排序,整个排序过程可以递归进行,从而使整个数据成为有序的序列。
5、希尔排序(插入排序改进版)
首先,将要排序的一组数量按某个增量d分为几个组,每组中记录的下标相差d,对每组中的所有元素进行排序,然后用较小的增量对其进行分组,然后对每组进行排序。当增量减少到1时,整个要排序的数量被分成一组,排序完成。
6、归并排序
首先递归分解组,然后合并组。基本思路是比较两个数组的面的数字,谁小就先取谁,取后相应的指针向后移动一个。然后再比较,直到一个数组是空的,最后复制另一个数组的剩余部分。
实例扩展:
1
2
3
4
|
>>> data1 = [ 4 , 2 , 6 , 432 , 78 , 43 , 22 , 896 , 42 , 677 , 12 ] >>> data1.sort() >>> data1 #原来的顺序被替换 [ 2 , 4 , 6 , 12 , 22 , 42 , 43 , 78 , 432 , 677 , 896 ] |
1
2
3
4
5
6
7
|
>>> data1 = [ 4 , 2 , 6 , 432 , 78 , 43 , 22 , 896 , 42 , 677 , 12 ] >>> data2 = sorted (data1) >>> data1 [ 4 , 2 , 6 , 432 , 78 , 43 , 22 , 896 , 42 , 677 , 12 ] #原顺序保留 >>> data2 [ 2 , 4 , 6 , 12 , 22 , 42 , 43 , 78 , 432 , 677 , 896 ] #对副本排序 >>> |
到此这篇关于python排序的方法实例总结的文章就介绍到这了,更多相关python有几种排序的方法内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.py.cn/jishu/jichu/30125.html