我用下面的冒泡排序算法进行排序。 这是算法是否正确?
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);
}
}
}
如果冒泡排序是不是必需的(由作业了吗?),然后用Java实现的排序正确的方法是调用
Collections.sort(itemWiseBidderList);
如果你的列表项目实施Comparable
,或
Collections.sort(itemWiseBidderList, new Comparator() {
public int compare(Object o1, Object o2) {
// Compare o1, o2 .getRankInInt() here
}
});
这将是比冒泡排序快了很多。
这是伪代码,你可以验证,如果你的代码是正确的:
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
从源维基百科
它似乎是正确的(虽然我没有测试它),但是Collection
应该是可比的,所以你可能应该只需要调用itemWiseBidderList.sort()
什么数据类型是itemWiseBidderList
?