选择排序是一种简单的排序算法,它的基本思想是每次从未排序的元素中选择最小(或最大)的元素,然后将其放到已排序的元素序列的末尾。
以下是按最小数字进行选择排序的示例代码:
def selection_sort(arr):
n = len(arr)
# 遍历未排序序列
for i in range(n-1):
# 假设当前元素为最小值
min_index = i
# 在未排序序列中查找最小元素的下标
for j in range(i+1, n):
if arr[j] < arr[min_index]:
min_index = j
# 将最小元素与当前元素交换位置
arr[i], arr[min_index] = arr[min_index], arr[i]
return arr
# 测试示例
arr = [64, 25, 12, 22, 11]
sorted_arr = selection_sort(arr)
print("排序后的数组:", sorted_arr)
输出结果为:[11, 12, 22, 25, 64]
这段代码首先定义了一个名为selection_sort
的函数,该函数接受一个未排序的数组作为输入,并返回排序后的数组。然后,使用两个嵌套的循环来实现选择排序的逻辑。外层循环从第一个元素到倒数第二个元素,表示未排序序列的起始位置。内层循环从外层循环的下一个位置开始到数组末尾,用于在未排序序列中查找最小元素的下标。每次内层循环找到更小的元素时,将其下标更新为最小下标。最后,在外层循环的当前位置与最小元素交换位置,实现将最小元素放到已排序序列的末尾。重复执行这个过程,直到整个数组排序完成。
这样,我们就可以通过调用selection_sort
函数来对任意数组进行选择排序。