Я внедряю Insertionsort для университета. Мой код работает теоретически, но мой цикл for выполняется только один раз вместо books.size() (который равен 5, я тестировал это). Я попробовал это, используя номер 5, но это не сработает, и я отчасти отчаялся, потому что я не могу найти ошибку.For-loop выполняется только один раз?
Вот мой код:
static void sort(LinkedList<Book> books)
{
int i;
for (i = 0; i < books.size(); i++)
{
Book temp = books.get(i);
books.remove(i);
for (int j = 0; j < books.size(); j++) {
if (books.get(j).compareTo(temp) > 0) {
books.add(j, temp);
return;
}
}
books.add(temp);
}
}
Функция CompareTo Книжной-класса выглядит следующим образом:
public int compareTo(Book other)
{
int iAutor = autor.compareTo(other.getAutor());
if (iAutor != 0)
return iAutor;
else
{
int iTitel = titel.compareTo(other.getTitel());
if (iTitel != 0)
return iTitel;
else
{
if (this.auflage < other.getAuflage())
return -1;
else if (this.auflage > other.getAuflage())
return 1;
else
return 0;
}
}
}
Am I просто слепым?
, что внутренний 'возвращение;' кажется подозрительным ... –
Я с этим @Sparta парень! –
Я предполагаю, что вы проверили, что функция сравнения бит возвращает значение больше нуля в первой итерации? – Raven