1.使用list内建函数sort排序
list.sort(key=None,reverse=False)
l = [2,4,4,1,7,2,5,0] print(l.sort()) 结果:[0, 1, 2, 2, 4, 4, 5, 7] l.sort(reverse=True) print(l) 结果:[7, 5, 4, 4, 2, 2, 1, 0]
2.用序列类型函数sorted(list)进行排序
l = [2,4,4,1,7,2,5,0] print(sorted(l)) 结果:[0, 1, 2, 2, 4, 4, 5, 7]
注意:sorted和sort区别
sorted(list)返回一个对象,可以用作表达式,原生的list顺序不变,生成一个新的排好序的list对象,sorted可以对可迭代对象进行排序
list.sort()不会返回对象,改变原有的list顺序。只能用于列表排序
3.选择排序法
从第一个位置开始比较,找出最小的,和第一个位置互换,开始下一轮。
步骤:
- 在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
- 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
- 以此类推,直到所有元素均排序完毕。
#选择排序 s = [2,4,1,8,33,3,9,22] n = len(s) for i in range(n): min = i #最小值索引 for j in range(i+1,n): if s[min] > s[j]: min = j s[min],s[i] = s[i],s[min] #找出最小值与当前值交互 print(s)
4.冒泡排序法
从左到右,数组中相邻的两个元素进行比较,将较大的放到后面。
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对第0个到第n-1个数据做同样的工作。这时,最大的数就“浮”到了数组最后的位置上。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
lt = [3, 5, 2, 1, 8, 4] n= len(lt) for x in range(n-1): for y in range(n-1-x): if lt[y]>lt[y+1]: lt[y],lt[y+1]=lt[y+1],lt[y] print(lt)