二维数组上升冒泡的java [英] 2d array ascending bubblesort java

查看:206
本文介绍了二维数组上升冒泡的java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想实现一个二维数组的冒泡排序将在升序行,但它只是移动的第一个项目。我该如何解决这个问题?

I am trying to implement bubble sort on a 2D array to put the rows in ascending order, but it is only moving the first item. How can I fix this?

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 

任何帮助将是巨大的!

Any help would be great!

推荐答案

冒泡排序是为O(n ^ 2)算法,所以你需要2循环的单数组。

Bubble sort is an O(n^2) algorithm so you need 2 for loops for a single array.

如果您有n个数组,那么你就需要3圈,以所有行进行排序。

If you have n arrays then you would need 3 for loops in order to sort all the rows.

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

Which makes it O(n^2*m) algorithm. ( where m is the amount of rows)

SOOOO ...

Soooo...

 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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆