函数'bigSorting'接受BigInteger作为'List of Strings'的输入。我有一个单循环的方法来排序字符串列表在给定的复杂性,但仍然,字符串没有排序/BigInteger列表没有排序。
输入:(字符串列表)31415926535897932384626433832795,1,3.10,3.5
public static List<String> bigSorting(List<String> u) {
// Write your code here
String S = "";
for(int i = 0; i<u.size()-1; i++)
{
BigInteger a = new BigInteger(u.get(i));
BigInteger b = new BigInteger(u.get(i+1));
int x = a.compareTo(b);
if(x>1)
{
S = u.get(i);
u.set(i,u.get(i+1));
u.set(i+1,S);
i = -1;
}
}
return u;
}
输出:(错误的答案)31415926535897932384626433832795,1,3.10,3.5
int x = a.compareTo(b);
if(x>1)
这个条件永远不会通过。compareTo
的文档说
返回:- 1,0或1,当此BigInteger小于、等于或大于val。
所以x
可能是1
,但它永远不会大于1
。你可能指的是x > 0
。
注:看来你已经实现了一个冒泡排序,这是一个O(N^2)算法,而不是O(N)。