选择排序(Select Sort)是一种简单直观的排序算法。其基本思想是:首先在未排序的数组中找到最小(最大)的元素,然后将其存放到数组的起始位置;再从剩余未排序的元素中继续寻找最小(最大)元素,然后放到已排序序列的末尾,以此类推,直到所有元素均排序完成。废话不多说,直接上代码,用C语言实现,代码可能不是最简洁的,关键是理解其实现过程。
选择排序
复杂度
时间复杂度:O(n²)
空间复杂度:O(1)
稳定性:选择排序算法是不稳定的排序算法,因为没有办法保证值相等的元素的相对位置不变。
优化:选择排序的核心是在每次比较重,找到本次重最小的元素放在本次比较的第一个位置,所以选择排序的每次比较只需要交换一次即可,只要找到本次比较重最小的元素和本次比较中第一个位置的元素交换即可。