对数组进行排序,近乎完成,只需要重置最小值

时间:2015-03-01 14:22:08

标签: java arrays sorting variables reset

我为代码准备了一个数组排序代码。我已经完成了,唯一的问题是我的最小变量没有重置它自己。我不能把它说成“空”

也许你有了一个想法......一开始我把min = c[0][0];但是如果这是最小的数字。它不会起作用。 :/

public class Sort {
    public static void main(String[] args) {
        int[] a = {3,2,-1,-2,-5,4};
        specialSort(a);
    }

    static void specialSort(int[] a) {
        try {
            int[] b = new int[a.length];
            int[][] c = new int[a.length][2];

            for (int k = 0; k<a.length; k++) {
                for (int l = 0; l<2; l++) {
                    if (l == 0) {
                        c[k][l] = a[k];
                    } else {
                        c[k][l] = 0;
                    }
                }
            }

            int min, minindex;

            for (int j=0; j<c.length; j++) {
                for (int i=0; i<c.length; i++) {
                    if (c[i][1] == 0) {
                        min = c[i][0];
                        if (min > c[i][0]) {
                            min=c[i][0];
                            minindex = i;
                        }
                    }
                } 
                b[j] = min;
                c[minindex][1] = 1;
            }

            for(int i=0; i<c.length; ++i) {
                //for(int j=0; j<2; j++) {
                    System.out.print(b[i]+" ");
                System.out.println();
            }
        } catch (IllegalArgumentException e) {
            System.out.println("dulli");
        }
    }
}

1 个答案:

答案 0 :(得分:1)

如果我理解你说的是什么以及你的问题是什么,为什么不尝试将min设置为

Integer.MAX_VALUE

Long.MAX_VALUE

取决于您的数据类型,因此您将以某种方式用输入中的一个数字替换它,因为您的输入中的某些数字肯定会小于java可以表示的最大数字?我认为如果你这样做就应该有用