Выбор сортировки с использованием сопоставимого класса [дубликат]

Я не считаю, что указано, что данные должны быть сброшены на fseek, но когда данные фактически записаны на диск, они должны быть записаны в том положении, в котором был поток, когда была вызвана функция записи. Даже если данные все еще буферизованы, этот буфер не может быть записан в другую часть файла, когда он сбрасывается, даже если последует поиск.

0
задан 박재현 18 March 2019 в 13:39
поделиться

1 ответ

Когда вы звоните Selection.sort(list) в main, кажется, что list имеет длину 10000.

Каждый элемент по умолчанию равен нулю.

Итак, если вы прочитаете три слова, ваш список будет выглядеть следующим образом:

word1,word2,word3,null,null,null......null

Быстрый взлом, чтобы вам не нужно изменять размер массива - попробуйте сделать свой внутренний цикл в Selection::sort:

    for (int j = i + 1; j < n; j++) {
        if (a[j] == null) {
            break;
        }

        if (less(a[j], a[min]))
            min = j;
    }

Или - изменить размер массива перед обработкой.

Или - используйте ArrayList, чтобы помещать слова в массив и затем преобразовывать его в массив, если вам абсолютно необходимо использовать массив.

0
ответ дан Not a JD 18 March 2019 в 13:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: