选择排序:
#从下到大
def find_smallest(arr):
smallest = arr[0]
smallest_index = 0
for i in range(1, len(arr)):
if arr[i] < smallest:
smallest = arr[i]
smallest_index = i
return smallest_index
def select_sort(arr):
new_arr = []
for i in range(len(arr)):
smallest = find_smallest(arr)
new_arr.append(arr.pop(smallest))
return new_arr
print(select_sort([1,5,3,2,7]))
#从大到小
def find_max_num(arr):
max_num = arr[0]
max_num_index = 0
for i in range(1, len(arr)):
if arr[i] > max_num:
max_num = arr[i]
max_num_index = i
return max_num_index
def select_sort(arr):
new_arr = []
for i in range(len(arr)):
max_num = find_max_num(arr)
new_arr.append(arr.pop(max_num))
return new_arr
print(select_sort([1,5,3,2,7]))
快速排序:
def qsort(array):
if len(array) < 2:
return array
else:
pivot = array[0]
less = [i for i in array[1: ] if i <= pivot]
greater = [i for i in array[1: ] if i > pivot]
return qsort(less) + [pivot] + qsort(greater)
print(qsort([23,4,6,7,11,45,23]))