排序--Python

使用Python对数据排序时,有两种选择。

原地排序(In-place sorting)是指按你制定的顺序排列数据,然后用排序后的数据替换原来的数据。

原来的顺序会丢失。对于列表,sort()方法会提供原地排序:

>>>data = [6, 3, 1, 2, 4, 5]
>>>data
[6, 3, 1, 2, 4, 5]
使用sort()方法完成原地排序,每个Python列表都有的一个标准方法:
>>>data.sort()
>>>data
[1, 2, 3, 4, 5, 6]

复制排序(Copied sorting)是指按你指定的顺序排列数据,然后返回原数据的一个有序副本。原数据的顺序依然保留,只是对一个副本排列。

在Python中,sorted()BIF支持复制排列:

>>>data = [6, 3, 1, 2, 4, 5]
>>>data
[6, 3, 1, 2, 4, 5]
>>>data2 = sorted(data)
>>>data
[6, 3, 1, 2, 4, 5]
data2
[1, 2, 3, 4, 5, 6]

sort()和sorted()均是按升序排列元素,要以降序对数据排列,需要向sort()或sorted()传入参数reverse=True,Python会负责具体处理。

时间: 2024-10-14 21:38:55

排序--Python的相关文章

DAG图的拓扑排序 python

在DAG中DFS中顶点的出栈顺序即逆拓扑序. def topological_sort( graph ): is_visit = dict( ( node, False ) for node in graph ) li = [] def dfs( graph, start_node ): for end_node in graph[start_node]: if not is_visit[end_node]: is_visit[end_node] = True dfs( graph, end_n

选择排序-Python与PHP实现版

选择排序Python实现 import random # 生成待排序数组 a=[random.randint(1,999) for x in range(0,36)] # 选择排序 def selectionSort(array): i=0 while i<len(array)-1: min = i j = i+1 while j<len(array): if array[min] > array[j]: min = j j = j+1 if i != min: array[i],arr

计数排序、桶排序python实现

计数排序在输入n个0到k之间的整数时,时间复杂度最好情况下为O(n+k),最坏情况下为O(n+k),平均情况为O(n+k),空间复杂度为O(n+k),计数排序是稳定的排序. 桶排序在输入N个数据有M个桶时,如果每个桶的数据接近N/M个且桶内使用基于比较的排序,则桶排序的时间复杂度为O(N+M*N/M*log(N/M)).如果N=M时,每个桶只有一个数据,时间复杂度降低为O(N). 桶排序的时间复杂度为O(N+M),桶排序是稳定的排序 1.计数排序 计数排序介绍及C语言实现在:计数排序(链接) d

选择排序——Python实现

选择排序: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕. 选择排序的主要优点与数据移动有关.如果某个元素位于正确的最终位置上,则它不会被移动.选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换.在所有的完全依靠交换去移动

选择排序 python

选择排序是比较简单的一种排序,它的主要思想是每次循环找出最小的数,把它放到未排序的子数组的首位,然后进行下一次循环. 下一次循环的时候,就多了一个排好序的数,少了一次比较.用python如下实现: def Choose_sort(a): N = len(a) for i in range(0, N): min_index = i #最小数的起始位置 for j in range(i+1, N): #每次从未排序的子数组开始循环 if a[min_index] > a[j]: min_index

Python中字符串List按照长度排序 - python

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 下面看下字符串List按照长度排序(python)的实现方法 myList = ['青海省','内蒙古自治区','西藏自治区','新疆维吾尔自治区','广西壮族自治区'] 1.首先得到每个字符串长度 2.排序,选择sorted或者 list.sort()进行排序 内置sorted返回一个新的列表,而list.sort是对列表进行操作 sorted(iterable, cmp=None, key=None, rever

八大排序python实现

1.直接插入排序:将需要排序的列表分为已排序和未排序部分,依次将未排序部分的数字与已排序部分进行比较,找到比自己小的数字时停止,并插入到该数字后一位 def insertSort(L): lenth = len(L) for i in range(1, lenth): if L[i] < L[i-1]: j = i-1 tmp = L[i] while tmp < L[j]: L[j+1] = L[j] j = j-1 L[j+1] = tmp return L

选择排序python实现

选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完.注意每次查找到最小值之后要将之从原列表中弹出,避免重复查找. 1 def findsmallest(d): 2 smallest = d[0] 3 smallest_number = 0 4 for i in range(1,len(d)): 5 if smallest > d[i]: 6 smallest =

排序 --&gt; Python 实现

了解和实现冒泡排序.选择排序.插入排序.希尔排序.归并排序.和快速排序. 1.冒泡排序 冒泡排序要对一个列表多次重复遍历. 它要比较相邻的两项,并且交换顺序排错的项. 每对列表实行一次遍历,就有一个最大项排在了正确的位置. 大体上讲,列表的每一个数据项都会在其相应的位置“冒泡”. 它们的顺序是否正确. 如果列表有n项,第一次遍历就要比较n-1对数据. 需要注意,一旦列表中最大(按照规定的原则定义大小)的数据是所比较的数据对中的一个, 它就会沿着列表一直后移,直到这次遍历结束. 第二次遍历开始时,