defbubbleSort(arr):
n =len(arr)for i inrange(n):for j inrange(n-i-1):if(arr[j]> arr[j+1]):
arr[j], arr[j+1]= arr[j+1], arr[j]return arr
归并排序
defmergeSort(arr, l, r):if(l == r):return arr[l]
mid =int((l+r)/2)
mergeSort(arr, l, mid)
mergeSort(arr, mid+1, r)
sortlr(arr, l, mid, r)return arr[l:r+1]defsortlr(arr, l, mid, r):
left =[]
right =[]for i inrange(l, mid+1):
left.append(arr[i])for i inrange(mid+1, r+1):
right.append(arr[i])
len1 = mid - l +1
len2 = r - mid
i, j, k =0,0, l
while(i < len1 and j < len2):if(left[i]<= right[j]):
arr[k]= left[i]
k = k +1
i = i +1else:
arr[k]= right[j]
k = k +1
j = j +1# 还有一半的元素剩余(左右不一样多的时候)while(i < len1):
arr[k]= left[i]
k = k +1
i = i +1while(j < len2):
arr[k]= right[j]
k = k +1
j = j +1return arr[l:r+1]
快速排序
defquickSort(arr, l, r):if(l < r):
d = partition(arr, l, r)
quickSort(arr, l, d-1)
quickSort(arr, d+1, r)defpartition(A, l, r):
x = A[r]
i = l -1for j inrange(l, r):if(A[j]<= x):
A[i+1], A[j]= A[j], A[i+1]
i = i +1
A[i+1], A[r]= A[r], A[i+1]
q = i +1return q
冒泡排序def bubbleSort(arr): n = len(arr) for i in range(n): for j in range(n-i-1): if (arr[j] > arr[j+1]): arr[j], arr[j+1] = arr[j+1], arr[j] return arr 归并排序def mergeSort(arr, l, r): if (l == r):