簡體   English   中英

在不使用排序方法的情況下以精確的升序打印數組 2D?

[英]Array 2D printed in precise ascending order without using sort method?

我想在不使用任何排序技術的情況下按升序打印二維數組中的數字。 這是我的代碼:

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 7 3 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM