这是代码正确实施冒泡排序的?(Is this code a correct implementati

2019-10-29 05:40发布

我用下面的冒泡排序算法进行排序。 这是算法是否正确?

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

Answer 1:

如果冒泡排序是不是必需的(由作业了吗?),然后用Java实现的排序正确的方法是调用

Collections.sort(itemWiseBidderList);

如果你的列表项目实施Comparable ,或

Collections.sort(itemWiseBidderList, new Comparator() {
    public int compare(Object o1, Object o2) {
        // Compare o1, o2 .getRankInInt() here
    }
});

这将是比冒泡排序快了很多。



Answer 2:

这是伪代码,你可以验证,如果你的代码是正确的:

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

从源维基百科



Answer 3:

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

什么数据类型是itemWiseBidderList



文章来源: Is this code a correct implementation of Bubble Sort?