Я просматривал код Java TimSort: Исходный код , в частности строки с 676 по 739 функции mergeLo.Он имеет (примерно) следующую компоновку:
outer:
while (true) {
//Code here
break outer; //Code within a few if tests in the loop.
}
//Code here executes somehow.
Я запутался в том, как эта функция может когда-либо перестать работать, потому что единственные операторы break идут во внешний блок (который затем должен вернуться к(правда), и нет никаких возвращаемых операторов.
Моя проблема в том, что строка 747 выполняет и выдает исключение, когда я пытаюсь отсортировать 184 или более элементов, и я хочу выяснить, как это исправить,любая помощь будет принята с благодарностью.
[Примечание]: эта функция вызывается методом collection.sort для Java, развернутой на телефоне Android.