我一直在研究由字符串组成的数组的排序,这是我的代码
public static void bubbleSort(String[] values)
{
boolean swapped = true;
while (swapped)
{
swapped = false;
for (int count = 0; count<values.length-1;count++)
{
if(values[count].compareTo(values[count+1])>0)
swap(values,count,count+1);
swapped = true;
}
}
}
public static void selectionSort(String[] values)
{
int first =0, last = values.length-1,biggest = 0;
while (last > first)
{
biggest = maxIndex(values);
swap (values, biggest,last);
last --;
}
}
private static void swap(String[] values, int first, int second)
{
String temp = values[first];
values[first] = values[second];
values[second] = temp;
}
public static int maxIndex(String[] values)
{
int index=0;
for(int count=0; count<values.length; count++)
{
if(values[count].compareTo(values[index])>0)
{
index=count;
}
}
return index;
}
当我尝试通过测试仪运行bubbleSort时,没有打印任何内容,而selectionSort只返回未排序的字符串。
Eclipse中没有语法错误,那么我应该假设算法或代码必须存在逻辑错误吗?
答案 0 :(得分:0)
对于冒泡排序
for (int count = 0; count<values.length-1;count++)
{
for(int j=0;j<values.length-1;j++)
{
if(values[j].compareTo(values[j+1])>0)
swap(values,count,count+1);
}
}
下面是一轮How Bubble Sort的工作示例?
这只是我们必须进行n * n轮的一轮,
冒泡的复杂性排序:О(n2)