选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
以下是用Python实现选择排序的代码:
def selection_sort(arr):# 遍历所有数组元素for i in range(len(arr)):# 找到未排序部分的最小值的索引min_idx = ifor j in range(i+1, len(arr)):if arr[min_idx] > arr[j]:min_idx = j# 将找到的最小值交换到已排序序列的末尾arr[i], arr[min_idx] = arr[min_idx], arr[i]return arr# 测试选择排序函数
arr = [64, 25, 12, 22, 11]
selection_sort(arr)
print("Sorted array is:", arr)
在这段代码中,selection_sort
函数接收一个列表 arr
作为参数。它首先遍历列表中的每个元素,对于每个元素,它都会查找从当前位置到列表末尾的最小元素的索引。找到最小元素后,它会将该元素与当前位置的元素进行交换。这个过程一直持续到列表的最后一个元素,此时列表已经完全排序。
测试部分创建了一个未排序的列表 arr
,并调用 selection_sort
函数对其进行排序。最后,打印出排序后的列表。