gpt4 book ai didi

java - (Java) 我的入门冒泡排序的效率

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:47 24 4
gpt4 key购买 nike

我是 Java 的新手,我有一个关于优化的问题。

如果我在我的 IF 语句之前声明一个获取 x.indexOf(i) + 1 值的变量,而不是仅仅在下面的代码中放置两次(它描述了第一次调用冒泡排序,没有重复)。

是否值得实际制作一个 j 变量来保存 x.indexOf(i) +1 而不是让函数再次运行一次?

我还认为我在 IF 中的第一个条件有点缺陷,是否可以让 i 在 foreach 中从 i+1 值开始?

ArrayList 的使用也是强制性的。

感谢您的回答。 (还没有读过 Java 中的编码标准,所以我猜它看起来很难看)

public static void bubbleOnce(ArrayList<Integer> x) {
for(int i : x) {
if((x.indexOf(i) != x.size()-1) && i > x.get(x.indexOf(i) + 1)) {
Collections.swap(x, x.indexOf(i), (x.indexOf(i) + 1));
}
}
}

最佳答案

使用 indexOf 是不正确的,如果您的 ArrayList x 包含一个以上的 i 值,您的排序方法将表现不正确。

例如这种情况:[5, 5, 1]

运行程序后,返回[5, 5, 1]

此外,如 tucuxi 所述,使用 indexOf 会降低程序速度。

关于java - (Java) 我的入门冒泡排序的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30789173/

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