Насколько я понимаю, этот метод работает в среднем за O(N logN), где N — число элементов перестановки. В то время как алгоритм Фишера-Йетса работает за O(N), да и пишется куда проще.
Не гарантируется, что задачи будут иметь решения на каждом из представленных языков (особенно это касается скриптовых). Сложные задачи обычно можно сдать только на C++, Java и, возможно, C#.
Эталонные реализации можете посмотреть на странице с раундом по ссылке «Скачать тесты» (непонятно почему она так называется).
Почему бы не прогнать эту программу на маленьких тестах (перебирать последовательности длиной не 1161, а 30-), которые реально проверить человеку? После этого поверить в то, что она работает корректно, и больше не задаваться такими вопросами.
> потомки проплачивают «хостинг»
Через несколько поколений стоимость поддержания «жизни» всех предков станет слишком большой и кому-то всё равно придётся «умереть». Придётся работать самому, чтобы оплачивать своё существование в хостинге. Каким-нибудь модератором сайтиков или онлайн-игр. =)
Прочитал всю статью и комменты, но так и не понял, что собственно мне помешает включить, например, GreedyTorrent, и сказать серверу, что я раздал этот файл тысячу раз? И как тогда мне оплата будет начисляться?
Насколько я понимаю, этот метод работает в среднем за O(N logN), где N — число элементов перестановки. В то время как алгоритм Фишера-Йетса работает за O(N), да и пишется куда проще.Я буду читать комментарии
Эталонные реализации можете посмотреть на странице с раундом по ссылке «Скачать тесты» (непонятно почему она так называется).
Через несколько поколений стоимость поддержания «жизни» всех предков станет слишком большой и кому-то всё равно придётся «умереть». Придётся работать самому, чтобы оплачивать своё существование в хостинге. Каким-нибудь модератором сайтиков или онлайн-игр. =)
bit.ly/eYb0UB
public class Main{
public static void main(String[] argv){
int[] a=new int[] {1, 4, 12, 15, 18, 22, 26, 37};
System.out.print(Arrays.binarySearch(a, 18)); //4
}
}
1 минута