java - java 二维数组升序冒泡排序

标签 java arrays sorting bubble-sort

我试图在二维数组上实现冒泡排序,将行按升序排列,但它只是移动第一项。我怎样才能解决这个问题?

for(int i = 0; i<differencearray.length; i++){
        for(int j = 0; j<differencearray[i].length-1; j++){
            if(differencearray[i][j]>differencearray[i][j+1]){
                int temp = differencearray[i][j];
                differencearray[i][j] = differencearray[i][j+1];
                differencearray[i][j+1] = temp;
                }
        }
    }

输入为:

2147483647 15 9 13 24 

15 2147483647 18 16 17 

9 18 2147483647 12 27 

13 16 12 2147483647 25 

24 17 27 25 2147483647 

输出为:

15 9 13 24 2147483647 

15 18 16 17 2147483647

9 18 12 27 2147483647

13 12 16 25 2147483647 

17 24 25 27 2147483647 

任何帮助都会很棒!

最佳答案

冒泡排序是一种 O(n^2) 算法,因此单个数组需要 2 个 for 循环。

如果您有 n 个数组,则需要 3 个 for 循环才能对所有行进行排序。

这使得它成为O(n^2*m) 算法。 (其中 m 是行数)

太好了...

 for(int i = 0; i < rowCount; i++){
   for(int j = 0; j < colCount; j++){
     for(int k = 0; k < colCount; k++){
       if(differencearray[i][k]>differencearray[i][k+1]){
            int temp = differencearray[i][k];
            differencearray[i][k] = differencearray[i][k+1];
            differencearray[i][k+1] = temp;
       }

     }
   }
 }

关于java - java 二维数组升序冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25735217/

相关文章:

android - 在android中获取mp3持续时间

java - 创建一个数组,其中包含一定范围内的随机值

java - java中打印数组元素的数据

java - 我的 JTextPane 如何显示多种字体?

java - 从 Cobol 程序中使用 Java API

java - @Max 和 @Min 不适用于方法参数

C:如何对结构中的值进行排序和子排序

c++ - 在c中如何在没有 vector 和结构数组的情况下拥有可变数量的结构?

javascript - 给定一个对象数组,如何按深度为 n 的属性对对象进行排序

string - 按数字对文件名列表进行排序