выходит за пределы массива, если указать неправильный компаратор. Разве это нормально? Разве было бы не естественней, если бы он входил в бесконечный цикл или просто заканчивал когда-либо выполнение? Это может быть ошибка? Есть пример, использовался компаратор с нестрогим неравенством (что, с точки зрения логики, не мешает отсортировать массив) и происходило обращение за пределы массива. Именно к индексам -1 и -2. Но разве алгоритм сортировки вообще может так работать, чтобы даже при некорректном компараторе обращаться за пределы массива?