gpt4 book ai didi

java - Collections.sort 和冒泡排序

转载 作者:行者123 更新时间:2023-12-01 10:37:05 25 4
gpt4 key购买 nike

我使用两种不同的方式对 ArrayList 中的结果进行排序。第一种方法是 Collections.sort ,它工作得很好,所以没有问题。另一个是排序算法冒泡排序(我知道它无效,用于研究目的)我有集合排序来对结果进行排序,最大值为 0,第二大值为 1 等。我想要我的冒泡排序算法,所以以相反的方式排序,最小值为 0 等。如上所述,集合排序工作正常,但我的冒泡排序没有按照我想要的方式对它们进行排序。

是我的方法有问题还是循环有问题?

private void sort(boolean resultComparison, ArrayList<Result> list) {
if (resultComparison= false) {
boolean moved;
do {
moved= false;
for (int i = 1; i < list.size(); i++) {
Result in = list.get(i - 1);
Result de = list.get(i);
if (in.value() < de.value()) {
list.set(i - 1, de);
list.set(i, in);
moved= true;
}
}
} while (moved);
} else {
Collections.sort(list);
}
}

boolean 值 resultComparison 是我的类的每个实例都有的一个属性, false 应该打印从小到大的结果。

最佳答案

当前,您的冒泡排序按降序排序,最大值位于列表中的 0 索引处。这是因为如果第一个值小于第二个值,则您将交换两个连续的值,例如[4, 5] => 4 < 5 => [5, 4]。

反转比较,以便在第一个值大于第二个值时交换两个连续值。改变

if (in.value() < de.value()) {

if (in.value() > de.value()) {

关于java - Collections.sort 和冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34622313/

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