gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:31:02 24 4
gpt4 key购买 nike

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]。对除第一个索引之外的所有内容进行排序。

最佳答案

Why ... skips the first index?

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

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

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

关于java - 为什么我的冒泡排序算法实现对整个数组进行排序并跳过第一个索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57978842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com