这段代码是冒充排序的正确实现吗?

时间:2011-04-11 10:05:22

标签: java sorting bubble-sort

我使用冒泡排序算法进行排序。 这个算法是否正确?

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);
        }
    }
}

3 个答案:

答案 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

来自wikipedia

的来源

答案 2 :(得分:0)

它似乎是正确的(虽然我没有测试它),但Collection应该具有可比性,所以你可能只需要调用itemWiseBidderList.sort()

什么数据类型是itemWiseBidderList