选择排序
算法步骤
以下是选择排序算法的详细步骤:
定义一个函数
selectionSort
,它接受一个参数arr
(待排序的数组)。创建一个变量
len
,将它设置为数组arr
的长度。使用嵌套循环遍历数组。外部循环从索引0开始,到索引
len - 1
结束。在每次外部循环迭代时,假设当前索引
i
处的元素是当前子数组中的最小值。内部循环从索引
i + 1
开始,到索引len
结束。在每次内部循环迭代时,如果发现比当前最小值更小的元素,则更新当前最小值的索引。
在内部循环结束后,如果当前最小值不是初始假设的最小值,则将其与子数组的第一个元素进行交换。
外部循环迭代完成后,整个数组将会被排序。
选择排序算法的时间复杂度是O(n^2),其中n是待排序数组的长度。这是因为它在每次外部循环迭代时,都需要进行内部循环来找到最小值,并且需要执行交换操作。这使得算法的性能在大型数据集上不太优秀。
然而,选择排序算法是一个稳定的排序算法,因为它不会改变相等元素的相对顺序。此外,选择排序算法的空间复杂度是O(1),因为它只需要使用常量级别的额外空间。