WordPress自动建站,成都网站建设哪家强,邯郸网站设计建设,游侠相册网页设计作业选择排序#xff08;Selection Sort#xff09;是一种简单的排序算法#xff0c;它的基本思想是在未排序的部分中选择最小#xff08;或最大#xff09;的元素#xff0c;然后将其放在已排序部分的末尾。选择排序不同于冒泡排序#xff0c;它不需要反复交换元素#xf…选择排序Selection Sort是一种简单的排序算法它的基本思想是在未排序的部分中选择最小或最大的元素然后将其放在已排序部分的末尾。选择排序不同于冒泡排序它不需要反复交换元素因此在某些情况下可能比冒泡排序更快。本文将详细介绍选择排序的工作原理和Python实现。
选择排序的工作原理
选择排序的基本思想是
从未排序的数组中找到最小的元素。将最小元素与未排序部分的第一个元素交换位置。重复上述两步不断扩大已排序部分缩小未排序部分直到整个数组有序。
选择排序的核心思想是每一轮选择一个最小的元素并将它交换到已排序部分的末尾。这一过程持续多轮每轮选择一个最小的元素直到整个数组有序。
下面是一个示例演示选择排序的过程。我们以升序排序为例
原始数组[64, 25, 12, 22, 11]
第一轮选择最小元素为 11交换位置后数组变为[11, 25, 12, 22, 64]第二轮选择最小元素为 12交换位置后数组变为[11, 12, 25, 22, 64]第三轮选择最小元素为 22交换位置后数组变为[11, 12, 22, 25, 64]第四轮选择最小元素为 25交换位置后数组变为[11, 12, 22, 25, 64]第五轮选择最小元素为 64交换位置后数组不变[11, 12, 22, 25, 64]
Python实现选择排序
下面是Python中的选择排序实现
def selection_sort(arr):n len(arr)for i in range(n):min_index ifor j in range(i1, n):if arr[j] arr[min_index]:min_index jarr[i], arr[min_index] arr[min_index], arr[i]arr 是待排序的数组。n 表示数组的长度。外层循环 for i in range(n) 用于控制遍历的轮数。内层循环 for j in range(i1, n) 用于查找未排序部分中的最小元素。min_index 用于记录最小元素的索引如果找到更小的元素更新 min_index。在内层循循环结束后将最小元素与当前轮次的第一个元素交换位置。
示例代码
下面是一个使用Python进行选择排序的示例代码
def selection_sort(arr):n len(arr)for i in range(n):min_index ifor j in range(i1, n):if arr[j] arr[min_index]:min_index jarr[i], arr[min_index] arr[min_index], arr[i]# 测试排序
arr [64, 25, 12, 22, 11]
selection_sort(arr)
print(排序后的数组:, arr)时间复杂度
选择排序的时间复杂度为 O(n^2)其中 n 是数组的长度。与冒泡排序一样选择排序不是最高效的排序算法但它是一种简单易懂的算法适用于小型数据集。
总之选择排序是一种简单的排序算法通过选择最小元素并将其放在已排序部分的末尾实现了排序数组的目标。了解选择排序有助于理解排序算法的基本原理并为学习更高效的排序算法奠定了基础。