为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的冒泡排序算法实现对整个数组进行排序并跳过第一个索引?

为什么我的冒泡排序算法实现对整个数组进行排序并跳过第一个索引?

萧十郎 2023-08-04 15:17:22
public static int[] bubbleSort(int[] inputArray){        for(int i = 0; i < inputArray.length  - 1; i++ ){            int tempa = inputArray[i];            int tempb = inputArray[i + 1];            if(inputArray[i] > inputArray[i + 1]){                inputArray[i] = tempb;                inputArray[i + 1] = tempa;                i = 0;                System.out.println(Arrays.toString(inputArray));            }        }        return inputArray;}此实现接受[20, 35, -15, 7, 55, 1, -22]并返回[20, -22, -15, 1, 7, 35, 55]. 对除第一个索引之外的所有内容进行排序。
查看完整描述

1 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

为什么...跳过第一个索引?

因为您i = 0在循环内部设置,但随后循环将执行i++,因此仅在第一次迭代时检查第一个元素,而不是在任何“重新启动”时检查。

要正确重新启动,请使用i = -1使i++重新启动发生在i = 0,而不是在i = 1

这将使代码正常工作,但是在交换两个元素后立即重新启动效率很低,因为您将反复重新检查数组的开头。


查看完整回答
反对 回复 2023-08-04
  • 1 回答
  • 0 关注
  • 55 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信