|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Gleb Galkin 2:5020/400 13 Dec 2000 13:41:37 To : All Subject : Re: сортировка большого хеша --------------------------------------------------------------------------------
Hi All!
>gzr> Вот возникла проблемка, никак не соображу как
>gzr> бы половчее извернуться.
>gzr>
>gzr> Hужно напечатать хеш отсортированный по ассоциированным значениям.
>gzr>
>gzr> делаю
>gzr>
>gzr> foreach $word (sort {$stat{$a} cmp $stat{$b}} keys %stat) {
>gzr> print OUT "$stat{$word} $word \n";
>gzr> }
>gzr>
>gzr> скрипт вылетает с сообщением "Out of Memory"
>gzr>
>gzr> Причем даже если foreach заменить на while - это все равно на спасает.
>gzr>
>gzr> Одна только строчка
>gzr>
>gzr> @sorted_keys = sort {$stat{$a} cmp $stat{$b}} keys %stat;
>gzr>
>gzr> приводит к нехватке памяти.
>gzr>
>gzr> Посоветуйте плз как извернуться...
>
>Смотря что там здоровое, конечно, но... Берешь книжку по алгоритмам сортировки
>(третий том "Искусства программирования" Кнута или что более другое) и
>изучаешь. У Кнута уделяется внимание сортировке в условиях нехватки ресурсов.
Да вот нет у меня этой книжки...
Я вот подумал... может я просто задачу неправильно пытаюсь решить.
Задача простая - собрать статистику по сайту какие слова упоминаються
сколько раз.
Я собираю в хеш все слова (слова являються keys, а количество упоминаний -
values)
Hу и потом нужно вывести результаты в файл. Я конечно могу выкрутиться
и вывести несортированные результаты а потом их отсортировать.
Просто меня эта задача сама по себе заинтересовала. Hеужто нельзя средствами
perl извернуться?
---------------------------
Best Regards, Gleb Galkin
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/5338f7a5ecbd.html, оценка из 5, голосов 10
|