xu506075418 2009-11-09 15:41 采纳率: 0%
浏览 307
已采纳

不知道为什么这个排序代码在Eclipse中输出总是有问题,一会儿那样,一会儿又这样

有时候这样,
排序后
4 3 1 7 9 8 6 5 9 8 7 6 5 4 3 1

有时候这样,
4 3 1 7 9 8 6 5 9 8 7 6 5 4 3 1 排序后

后来我在cmd下编译输出时没有问题的啊,
C:>java Select
4 3 1 7 9 8 6 5 排序后
9 8 7 6 5 4 3 1

我感觉真是见到鬼了,请指点

public class Select {
public static void main(String[] args) {
int[] arr = new int[]{4,3,1,7,9,8,6,5};
print(arr);
System.out.println("排序后");
bubblesort(arr);
}

private static void bubblesort(int[] arr) {
    for(int i=0; i<arr.length-1; i++) {
        for(int j=0; j<arr.length-i-1; j++) {
            if(arr[j] < arr[j+1]) {
                swap(arr, j, j+1);
            }
        }
    }
    print(arr);
}

private static void print(int[] arr) {
    for(int n : arr) {
        System.err.print(n + " ");
    }

}

private static void swap(int[] arr, int min, int outer) {
    int temp = arr[min];
    arr[min] = arr[outer];
    arr[outer] = temp;

}

}

  • 写回答

1条回答 默认 最新

  • ytsunwei403 2009-11-09 15:57
    关注

    结果肯定是这样的,因为 你首先print(arr); 然后bubblesort。如果 你想4 3 1 7 9 8 6 5 排序后
    9 8 7 6 5 4 3 1

    应该System.err.print(n + " "); 改成System.out.println(n + " ");

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端