Java选择排序
第二种效率低啊,得多交换多少次啊
该回答引用GPTᴼᴾᴱᴺᴬᴵ
两段代码的实现思路是一样的,都是选择排序,只是代码实现方式略有不同。第一段代码使用了一个变量 index 记录当前最小值的下标,然后在内层循环中遍历整个数组,寻找比 index 下标处的值更小的值,如果找到了,就将 index 更新为该值的下标,最后交换 index 下标处的值和 i 下标处的值。
第二段代码使用了两个嵌套的 for 循环,外层循环从数组的第一个元素开始遍历,内层循环从外层循环的下一个元素开始遍历,寻找比外层循环当前元素更小的值,如果找到了,就将两个元素交换位置。
两种实现方式的时间复杂度都是 O(n^2),但是第一种实现方式的代码量较少,可读性较高,容易理解,因此有些教材和教学中会选择使用第一种实现方式来讲解选择排序。但是第二种实现方式也是可行的,只要理解了选择排序的思想,就能够实现这个算法。