【问题标题】:How do I sorting an array using this way only ...? [closed]如何仅使用这种方式对数组进行排序...? [关闭]
【发布时间】:2014-06-30 10:44:06
【问题描述】:

我只想使用以下方式对(一维数组)进行排序。 方法是:

我们有这个数组:

索引:0-----1-----2-----3-----4-----5-----6

值:10----5-----6-----11----2-----5-----1

2- 创建一个新数组: 折叠 |复制代码 int []排序 =new int [7]

3- 现在我们要从源数组中找到最小数,并将其放在新数组“排序”中的索引 0 中,然后使源数组中的最小数 = 0,如下所示: 这是一个循环后的源数组:

索引:0-----1-----2-----3-----4-----5-----6

值:10----5-----6-----11----2-----5-----0

这是排序后的数组:

索引:0-----1-----2-----3-----4-----5-----6

值:1----null---null--null--null--null--null

4- 我们必须循环此步骤以使“排序”数组排序,如下所示:

索引:0-----1-----2-----3-----4-----5-----6

值:1-----2-----5-----5----6-----10-----11

================================================ ============================ 这是我的代码,但我不能再继续了:

public static void main(String[] args) 
    {   

int [] RandomArray = new int [8];
    //Inserting
    for(int i=0;i<RandomArray.length;i++)
    {

String element= JOptionPane.showInputDialog("Please insert any number "+ (i+1));
RandomArray [i]=Integer.parseInt(element);


    }

    int []SortedArray=new int [8];
    for(int s=0; s< RandomArray.length;s++)
    {


    for(int d=0;d<RandomArray.length;d++)
    {



            if (s==d || RandomArray[s]==0) 
        {


        }
        else



        {


            int x ;

            if (RandomArray[s]<RandomArray[d])

            {

                //SortedArray[s] = RandomArray[s];
                SortedArray[s] = RandomArray[s];
                x=s;

            }else

            {
                SortedArray[s] =    RandomArray[d];
                x=d;
            }

            RandomArray[x]=0;


        }//end first else
    }//end second for


    }//end first for

}

【问题讨论】:

  • ok.. 第 3 步和第 4 步有什么区别?为什么在第 3 步中有 null ?如果你想要它的排序,为什么不直接使用 Arrays.sort()?
  • 这是一个很棒的网站,您可以来询问具体问题,例如“如何解决我在这条线上遇到的错误......”,但您的问题并不是真正的除了家庭作业转储之外,根本没有问题,并且有可能关闭这个问题。为了防止这种情况发生,我敦促您展示您的努力成果,就您卡在哪里提出具体且可回答的问题,并展示您的代码。我们很乐意在这些方面为您提供帮助,帮助您学习并自己完成项目,但我们不想为您完成作业。
  • 好的,有什么问题?
  • 如果你想让我们做你的分类作业,那么你就是那种人。
  • 好的,我的朋友..这是我的代码,但我无法继续,请帮助我仅使用我的方式对数组进行排序:

标签: java arrays sorting


【解决方案1】:

这就像问如何实现插入排序试试下面的代码:

public static void main(String[] args) {

    int [] RandomArray = new int [5];
    for(int i=0;i<RandomArray.length;i++){
        String element= JOptionPane.showInputDialog("Please insert any number "+ (i+1));
        RandomArray [i]=Integer.parseInt(element);
    }
    int []SortedArray=new int [5];
    int sortArrayLength = 0;
    for(int d=0;d<RandomArray.length;d++) {
        int i = 0;
        int small = RandomArray[i];
        while(sortContains(small, SortedArray)){
            small = RandomArray[++i];
        }
        for(int k=0;k<RandomArray.length;k++){
            int temp = RandomArray[k];
            if(sortContains(temp,SortedArray)){
                continue;
            }
            else{
                if(temp < small){
                    small = temp;
                }
            }
        }
        SortedArray[sortArrayLength++] = small;
    }

    for(int k=0;k< SortedArray.length;k++){
        System.out.println(SortedArray[k]);
    }
}
private static boolean sortContains(int temp, int[] sortedArray) {
    boolean ret = false;
    if(sortedArray == null || sortedArray.length == 0)
        ret = false;
    else {
        for(int i = 0 ; i<sortedArray.length;i++)
            if(temp == sortedArray[i]){
                ret = true;
                break;
            }
    }
    return ret;
}

【讨论】:

  • 我的朋友,这是工作,但并非总是如此。请运行此代码并尝试将此值放入随机数组中:“1,2,3,4,5” 排序后的数组将不正确。
  • @user3789924 :thanx 通知那个错误 :) 编辑代码...
  • 非常感谢,这正是我想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 2016-05-17
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 1970-01-01
  • 2012-12-11
相关资源
最近更新 更多