在Java中将数组排序为第二个数组

时间:2016-05-28 23:15:52

标签: java arrays sorting

我需要制作2个数组并按升序将其中一个排序并显示出来。我已设法将ar []移动到已排序的[],但我无法将其实际排序。
这就是我到目前为止所拥有的:

public class SortArray
{
    public static void main(String argv[])
    {
        int ar[] = { 7, 5, 2, 8, 4, 9, 6 };
        int sorted[] = new int[7];

        for (int i=0; i<ar.length-1; i++)
        {
            int smallest = 1000000;
            int index    = 0;

            for (int j=i+1; j<sorted.length; j++)
            {
                if (ar[i] < smallest)
                {
                    smallest=i;

                    int tmp = ar[i];
                    ar[i] = sorted[j];
                    sorted[j] = tmp;
                }
            }
        }

        for(int i=0; i<sorted.length; i++)
        {
            System.out.println("sorted[" + i + "] = " + sorted[i]);
        }
    }
}

2 个答案:

答案 0 :(得分:0)

试着在这里理解并使用java算法。如果您对理解这个想法有疑问,请不要犹豫。 http://www.java2novice.com/java-sorting-algorithms/

它们更有效,并且不容易出错。

假设您正在尝试学习排序算法和编码,那么您正在尝试这样做;请注意,如果有相同的值,则只能获得其中一个。

    int ar[] = { 7, 5, 2, 8, 4, 9, 6 };
    int sorted[] = new int[6];

    int smallestFound=-1;
    for (int i=0; i<ar.length-1; i++)
    {
        int smallest = 1000000;
        for (int j=0; j<sorted.length; j++)
        {
            if (ar[j] < smallest && ar[j]>smallestFound) {
                smallest = ar[j];
            }
        }
        smallestFound=smallest;
        sorted[i] = smallest;
    }

    for(int i=0; i<sorted.length; i++)
    {
        System.out.println("sorted[" + i + "] = " + sorted[i]);
    }

答案 1 :(得分:0)

你可以使用TreeSet,它自然地对元素进行排序:

public class SortArray
{
    public static void main(String argv[])
    {
        int ar[] = { 7, 5, 2, 8, 4, 9, 6 };
  int sorted[] = new int[7];
List<Integer> sortedList = new TreeSet<Integer>();
for (int i=0; i<ar.length-1; i++) {
    sortedList.add(ar[i]);
}

// transform into array

for(int i = 0; i< sortedList.size(); i++) {
 sorted[i] = sortedList.get(i)
}


        for(int i=0; i<sorted.length; i++)
        {
            System.out.println("sorted[" + i + "] = " + sorted[i]);
        }
    }
}