题解 | #排序#
排序
http://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896
class Solution: def MySort(self , arr: List[int]) -> List[int]:
1. 冒泡排序
for i in range(len(arr)-1):
for j in range(i+1,len(arr)):
if arr[i] > arr[j]:
arr[i],arr[j] = arr[j],arr[i]
return arr
2. 快速排序
def quick_sort(start,end,arr):
if start >= end:return
left,right = start,end
ref = arr[(left+right) // 2]
while left <= right:
while left <= right and arr[left] < ref:
left += 1
while left <= right and arr[right] > ref:
right -= 1
if left <= right:
arr[left],arr[right] = arr[right],arr[left]
left += 1
right -=1
quick_sort(start, right, arr)
quick_sort(left, end, arr)
quick_sort(0, len(arr)-1, arr)
return arr
3. 选择排序
for i in range(len(arr)-1):
min_index = i
for j in range(i+1,len(arr)):
if arr[j] < arr[min_index]:
min_index = j
arr[i],arr[min_index] = arr[min_index],arr[i]
return arr