python对列表进行升序排序,python对列表按照升序和降序的方式分别排列
排序是计算机程序设计中的一项重要操作。它的功能是将任意序列的数据元素(或记录)重新排列成有序的关键字序列。本文主要描述python中常用的三种排序算法,即选择排序、冒泡排序和插入排序,以及它们的区别。解释列表中元素大小的顺序。
原地址:https://blog.zeruns.tech/index.php/archives/297/
一、选择性排序法选择性排序是一种简单直观的排序算法。不管什么数据进去,都是O (n)的时间复杂度。所以在使用的时候,数据量越小越好。唯一的好处可能就是不占用额外的内存空间。
1.算法步骤:首先找到未排序序列中最小(最大)的元素,存储在排序序列的开头,然后继续从剩余的未排序元素中找到最小(最大)的元素,然后放在排序序列的末尾。重复第二步,直到所有元素都排序完毕。2.动画演示。
3.Python代码实现def selectionSort(arr): #查找arr的长度n=len(arr) #外循环确定比较的轮数,x为下标,arr[x]表示arr中所有元素for range(n-1)在外循环中:#内循环开始对range(x 1,n)中的y进行比较:# arr[x]表示for y循环中的特定元素,arr[y]表示任意Arr的任意元素。如果arr[x] arr[y]: #让arr[x]与arr列表中的每个元素进行比较,找出小arr[x],arr [y]=arr [y],arr[x]return arr print(selection sort([1,3,1,4,5,)它重复访问要排序的序列,一次比较两个元素,如果顺序不对就切换。访问序列的工作一直重复到不需要交换为止,也就是说序列已经排序了。这种算法的名字来源于较小的元素会通过交换慢慢“浮”到序列的顶端。
冒泡排序还有一个优化算法,就是设置一个标志。当元素在一个序列遍历中没有交换时,就证明这个序列是有序的。但是这种改进对提高性能并没有太大的作用。
1.算法步骤比较相邻的元素。如果第一个比第二个大,两个都换。对每一对相邻的元素做同样的工作,从开始的第一对到结束的最后一对。在这一步之后,最后一个元素将是最大的数字。对除最后一个元素之外的所有元素重复上述步骤。每次对越来越少的元素重复上述步骤,直到没有要比较的数字对。2.运动图片演示【外链图片传输失败,源站可能有防盗链机制。建议保存图片直接上传(IMG-alo 6 nxbk-1580797495960)(3359 TC . zeruns . tech/images/2020/01/31/640-1 . gif)]
3.Python代码实现def冒泡排序(Arr):n=len(Arr)for x in range(n-1):for y in range(n-1-x):if Arr[y]Arr[y 1]:Arr[y],Arr [y 1]=arr [y 1],arr [y] return arr print(冒泡排序([1,3,1,4,5,2,0]) III .插入排序的代码实现没有冒泡排序和选择性排序那么简单粗暴,但它的原理应该是最容易理解的,因为只要打扑克牌。插入是最简单、最直观的排序算法。它的工作原理是在排序后的序列中从后向前扫描未排序的数据,找到对应的位置并插入。
和冒泡排序一样,插入排序也有一个优化算法,叫做对半插入。
1.该算法步骤将待排序的第一序列的第一个元素视为有序序列,并将第二个元素至最后一个元素视为未排序序列。从头到尾扫描无序序列,将每个扫描的元素插入有序序列的适当位置。(如果要插入的元素等于有序序列中的一个元素,则将要插入的元素插入到等于的元素之后。) 2.动画演示
3.计算机编程语言代码实现def insertion sort(arr):for I in range(1,len(arr)):key=arr[I]j=I-1 while j=0 and key arr[j]:arr[j 1]=arr[j]j-=1 arr[j 1]=key return arr print(插入排序([1,3,1,4,5,2,0))
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。