请判断如下实现排序功能的代码对应的排序算法类型
排序算法判定结果
你写的这段代码是交换式选择排序,属于选择排序的常见简化变种。
核心逻辑完全契合选择排序的思路:
- 外层循环每轮确定下标
i位置的最终取值 - 内层循环遍历
i之后所有未排序的元素,只要发现比ar[i]更小的值就直接交换 - 每轮外层循环结束后,
ar[i]就会是未排序区间里的最小值,逐轮推进后整个数组就完成升序排序
和标准选择排序的唯一区别是,标准实现会先遍历完整段未排序区间,记录下最小值的下标后只做一次交换操作;你这个实现是每次找到更小值就当场交换,写法更直观简单,但是整体交换次数会比标准实现多,时间复杂度和标准选择排序一致为O(n²),属于不稳定排序算法。
内容的提问来源于stack exchange,提问作者Anshul
相关产品推荐
相关产品推荐

