我使用冒泡排序算法进行排序。 这个算法是否正确?
for (int a = itemWiseBidderList.size() - 1; a > 1; a--)
{
for (int j = 0; j < a; j++)
{
if ((itemWiseBidderList.get(j).getRankInInt()) > (itemWiseBidderList.get(j + 1).getRankInInt()))
{
Collections.swap(itemWiseBidderList, j, j + 1);
}
}
}
答案 0 :(得分:1)
如果不需要冒泡排序(通过作业?),那么在Java中实现排序的正确方法是调用
Collections.sort(itemWiseBidderList);
如果您的列表项目实施Comparable
或
Collections.sort(itemWiseBidderList, new Comparator() {
public int compare(Object o1, Object o2) {
// Compare o1, o2 .getRankInInt() here
}
});
这比泡泡分拣要快很多。
答案 1 :(得分:0)
这是伪代码,您可以验证代码是否正确:
procedure bubbleSort( A : list of sortable items )
n = length(A)
for (i = 0; i < n; i++)
/* back through the area bringing smallest remaining element to position i */
for (j = n-1; j > i; j--)
if A[j-1] > A[j] then
swap(A[j-1], A[j])
end if
end for
end for
end procedure
的来源
答案 2 :(得分:0)
它似乎是正确的(虽然我没有测试它),但Collection
应该具有可比性,所以你可能只需要调用itemWiseBidderList.sort()
。
什么数据类型是itemWiseBidderList
?