以精确的升序打印阵列 2D,无需使用排序方法



我想在不使用任何排序技术的情况下按升序打印二维数组中的数字。这是我的代码:

public class ArraySort2D 
{   
    public static void main(String s)
    {
        int[][] arr={ {4,3,2,7,1}, {7,5,4,6,3}};
        for(int k=0; k<=1; k++) 
        {       
            for(int i=0; i<arr.length; i++)
            {
                for(int j=1; j<arr.length-i; j++)
                {
                    if(arr[k][j-1]>arr[k][j])
                    {
                        int dummy=arr[k][j-1];
                        arr[k][j-1]=arr[k][j];
                        arr[k][j]=dummy;
                    }
                }
            }
        }
        for(int p=0; p<arr.length; p++)
        {
            for(int g=0; g<arr[p].length; g++)
            {  
                System.out.println(arr[p][g]);      
            }
        }
    }
}

我希望输出为:

1 2 3 4 73 4 5 6 7

我使用的是愚蠢的排序算法,但您应该能够轻松地将您想要的任何排序算法适应我使用的排序方法

public static void main(String[] args) {
    int[][] arr= {  {4,3,2,7,1},
                    {7,5,4,6,3}
                };
    for(int index = 0; index < arr.length; index++)
        sortArray(arr[index]);
    printArray(arr);
}//main method
public static int[] sortArray(int[] ogArray)
{
    for(int i = 0; i < ogArray.length; i++)
    {
        if(i + 1 < ogArray.length && ogArray[i] > ogArray[i + 1])
        {
            int temp = ogArray[i + 1];
            ogArray[i + 1] = ogArray[i];
            ogArray[i] = temp;
            i = -1;
        }
    }
    return ogArray;
}
public static void printArray(int[][] temp)
{
    for(int i = 0; i < temp.length; i++)
    {
        for(int j = 0; j < temp[i].length; j++)
        {
            System.out.print(temp[i][j]);
        }
    }
}

输出为

1234734567

最新更新