选择排序
选择排序把数组划分为已排序和未排序两部分,每轮在未排序区找最小元素并与当前目标位置交换。代码实现中用两层循环,外层 i 为目标索引,内层遍历寻找最小索引 s,最后一次交换即可,已在实现中完成交换次数的优化。时间复杂度与冒泡排序同为 O(n²),但因交换次数少通常更快;若序列已有序度高,冒泡可能更优。选择排序是不稳定的——示例用扑克牌对象演示,同样的键值在不同规则下会改变相对顺序,而冒泡排序保持相对顺序,属于稳定算法。
选择排序把数组划分为已排序和未排序两部分,每轮在未排序区找最小元素并与当前目标位置交换。代码实现中用两层循环,外层 i 为目标索引,内层遍历寻找最小索引 s,最后一次交换即可,已在实现中完成交换次数的优化。时间复杂度与冒泡排序同为 O(n²),但因交换次数少通常更快;若序列已有序度高,冒泡可能更优。选择排序是不稳定的——示例用扑克牌对象演示,同样的键值在不同规则下会改变相对顺序,而冒泡排序保持相对顺序,属于稳定算法。