选择排序
算法思想
选择排序的思想是从待排序的数据中选出最小的值,与其最左边
的数字进行交换,重复以上步骤。在序列中查找最小值使用的是线性查找。
菜鸟课程
选择排序-Python语言描述
image.png
image.png
算法步骤
- 1、先用list[0]和list[1]~list[len(list)]比较,如果list[0]大,交换位置,将较小值放在list[0]即首位上。
- 2、再用list[1]和list[2]~list[len(list)]比较,如果list[1]大,交换位置,放在未排序的序列首位上。
3、重复1和2的过程。
selectionSort.gif
def select_sort(list1):
n = len(list1)
for i in range(n-1):
min_index = i
for j in range(i+1, n):
if list1[min_index] > list1[j]:
min_index = j
list1[i], list1[min_index] = list1[min_index], list1[i]
return list1
if __name__ == "__main__":
list1 = [1,9,3,5,2,8,6]
print("排序前",list1)
select_sort(list1)
print("排序后",list1)
image.png
def sort_list(list1):
length = len(list1)
for i in range(length - 1):
for j in range(i + 1, length):
if list1[i] > list1[j]:
list1[i], list1[j] = list1[j], list1[i]
return list1
def selectionSort(arr):
for i in range(len(arr) - 1):
minIndex = i
for j in range(i + 1, len(arr)):
if arr[j] < arr[minIndex]:
minIndex = j
if i != minIndex:
arr[i], arr[minIndex] = arr[minIndex], arr[i]
return arr
def find_smallest(array):
smallest = array[0]
index = 0
for i in range(1, len(array)):
if smallest > array[i]:
smallest = array[i]
index = i
return index