|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander Babanov 2:5020/5609.69 17 Apr 2001 00:50:28 To : Anatolij Kupriyanov Subject : Re: Perl:10% из массива -------------------------------------------------------------------------------- Юґullo Anatolij! [skip] AK> И pастёт линейно. :( Hу да, понятно =8) AK> Для 1_000_000 я не смог дождаться, когда он закончит (а ждал я AK> несколько минут). Вот такая штука pаботает за 12 секунд: AK> $с=1000000; AK> @a=sort {$a <=> $b} (sort {1-int rand 3} (1..$с))[0..$с/10]; Красиво :) Я только одного не пойму: мой алгоритм должен расти линейно, а твой, за счет сортировки, по N*log(N). Почему тогда такие жуткие торомза при переходе с 100,000 на 1,000,000 элементов?... Ладно, все одно всем надо идти и читать Кнута ;))) @N = (1..1000000); $n = @N/10; @a = (1..$n); $m = 0; for $t (0..$#N) { $a[$m++] = $N[$t] if rand 1*($#N + 1 - $t) < $n - $m; } CYa!!! ЪДВїЪДВВВДДДщщъъ ЪДВВВДї ЪїЪДВДДДДДДДДщщъъ ЪДДДД 2:5020/5609.69 ДДДї іВіАґДЕ ґBabanov іВі ґВі іАґВіST BERSERKER і babanov@earthlink.net і ... Еще наше поколение будет жить при Виагре! [предп. из писем Ильича к HКК] --- * Origin: Our governor can beat up your governor! (2:5020/5609.69) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/47303adbeacc.html, оценка из 5, голосов 10
|