Массив сортировщик. Ошибка вывода - PullRequest
1 голос
/ 25 августа 2011

Я написал сортировку по массиву, используя примеры, которые я нашел на этом сайте.Однако мой код не компилируется правильно.Вместо того, чтобы сохранять первое значение, он просто сохраняет целое число 0 и повторяет его.Кажется, я не могу найти, что с ним не так, но я подозреваю, что это где-то в моем цикле for.

/**
* @author angu2548
* XXX 310255325
*/
public class Sorter {

    public int[] sortArray(String[] args) {
        int [] numbers = new int [args.length];

        //Turning it into an int [] array
        for (int i= 0; i > args.length; i++){
            int x = Integer.parseInt(args[i]);
            numbers[i] = x;
        }

        //Insertion sort
        for(int j = 1; j < numbers.length; j++){
            int temp = numbers[j];
            int i = j -1;

            while (i  > 0 && numbers[i] > temp){
                numbers[i + 1] = numbers[i];
                i--;            
            }
            numbers[i + 1] = temp;
            //System.out.println("got to here");
        }
        return numbers;
    }       

    public static void main(String[] args) {        
        Sorter sort = new Sorter();
        int[] result = sort.sortArray(args); 
        if(result != null && result.length > 0){
            System.out.print("[" + result[0]);
            for(int i=1; i<result.length; ++i){
                System.out.print(", " + result[i]);
            }
            System.out.println("]");
        }
    }
}

Вывод: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] Даже если мои значения [1 2 3 4 5 6 7 8 8 5 4 3]

Ответы [ 2 ]

3 голосов
/ 25 августа 2011

Вы допустили ошибку в условии цикла:

for (int i= 0; i > args.length; i++)

предотвратит запуск цикла, поэтому numbers никогда не инициализируется с нужными элементами.Это должно быть

for (int i= 0; i < args.length; i++)
2 голосов
/ 25 августа 2011

Измените '>' с '<' в следующей строке:

for (int i= 0; i > args.length; i++)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...