本帖最后由 李明伟 于 2012-3-11 18:25 编辑
遍历错误是 if else语句使用不正确,比较时第二个for循环没有比较到最后一个,不能减1
正确代码:
public class test
{
public static void compare(int[] arr)
{
for (int x = 0; x < arr.length; x++)
{
for (int y = x + 1; y < arr.length; y++)
{
if (arr[x] > arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
public static void sort(int[] arr)
{
for (int b = 0; b < arr.length; b++)
{
if (b == 0)
{
System.out.print("{" + arr + ",");
} else if (b == arr.length - 1)
{
System.out.print(arr + "}");
} else
System.out.print(arr + ",");
}
System.out.println();
}
public static void main(String[] args)
{
int[] a =
{ 1, 2, 3, 3, 54, 56, 3, 46, 3 };
sort(a);
compare(a);
sort(a);
}
}
输出结果:
{1,2,3,3,54,56,3,46,3}
{1,2,3,3,3,3,46,54,56} |