用python实现list的排序方法
1、list列表排序
方法1.用list的内建函数list.sort进行排序
list.sort(func=None,key=None,reverse=False)
方法2.用序列类型函数sorted(list)进行排序
>>>list = [5,3,9,1]
>>>list
[5,3,9,1]
>>>sorted(list)
[1,3,5,9]
>>>list
[5,3,9,1]
>>>list.sort()
>>>list
[1,3,5,9]
sorted(list)返回一个对象,可以用作表达式,原生的list顺序不变,生成一个新的排好序的list对象
list.sort()不会返回对象,改变原有的list顺序。
2、冒泡排序
1.比较相邻的元素,如果第一个比第二个大,就交换他们两个
2.对每一对相邻的元素都进行比较,从第一对到最后一对。这时,最后的元素就是最大的数。
arr = [3,9,1,6]
def func(arr):
n = len(arr)
for j in range(0,n-1):
for i range(0,n-1-j):
if arr[i] > arr[j]:
arr[i],arr[i+1] = arr[i+1],arr[i]
fun(arr)
print(arr) # arr = [1,3,6,9]
3、插入排序
array = [1,4,8,0,2,10,7,3]
def insert_sort(array):
for i in range(len(array)):
for j in range(i):
if array[i] < array[j]:
array.insert(j, array.pop(i))
return array
print(insert_sort(array))
4、快速排序
array = [1,4,8,0,2,10,7]
def quick_sort(array):
def recursive(begin, end):
if begin > end:
return
l, r = begin, end
pivot = array[l]
while l < r:
while l < r and array[r] > pivot:
r -= 1
while l < r and array[l] <= pivot:
l += 1
array[l], array[r] = array[r], array[l]
array[l], array[begin] = pivot, array[l]
recursive(begin, l - 1)
recursive(r + 1, end)
recursive(0, len(array) - 1)
return array
print(quick_sort(array))