Java对数组进行排序并将其附加到另一个数组中

时间:2018-03-05 18:19:17

标签: java arrays sorting

我想通过[]执行线性搜索,并将结果附加到b []。 这是我的代码:

public class sorting {
    static int a[]={10,12,14,2,1,3};
    static int  b[]=new int[a.length];

public static void fn()
{
    for(int i=0;i<a.length;i++)
    {
        for(int j=1;j<a.length;j++)
        {
            if(a[i]>a[j]){
                 b[i]=a[j];
            }
        }
    }   
}

我的输出为333101.我期待{1,2,8,10,12,30}。

即使在找到最小值1后,循环继续并找到10> 3并将1替换为3.当找到最小值时,如何停止循环?

1 个答案:

答案 0 :(得分:0)

如果b[0]a[0]中的最小值,则永远不会初始化a

如果您希望在b中有一个已排序的输出,那么您应该在b语句中进行比较,包括if

如果某些数字在a中为负数或多数次,那么预期的行为是什么?

类似于您的代码的一种可能方法是

public static void fn() {
    for (int i = 0; i < a.length; i++) {
        b[i] = Integer.MAX_VALUE; // initialize with large value
        for (int j = 0; j < a.length; j++) {
            // search for Minimum bigger than last value already in b
            if (b[i] > a[j] && (i == 0 || a[j] > b[i - 1])) {
                b[i] = a[j];
            }
        }
    }
}