Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Serge Chervjakov                     2:5020/400     03 Nov 2004  01:33:05
 To : Alexander Pashchenko
 Subject : Отсортировать список
 -------------------------------------------------------------------------------- 
 
 Tue Nov 02 2004 22:54, Alexander Pashchenko wrote to All:
 
  AP> Есть массив @echoes содержащий неупорядоченный список эх. А хотелось бы
  AP> отсортировать его... проще пояснить на примере: ^n5062.* - V
  AP> hardw    - H
  AP> linux|unix - L
 
  AP> То есть *сгруппировать* :)
 
 Чесно говоря, не понял по какому принципу группировка идти должна. По
 последнему символу в каждой строке (H, L и т.д.)? Если да, то 2 варианта
 предложу. 
 1) @list=sort { substr($a,-1,1) cmp substr($b,-1,1) } @list; - думаю что все
 просто и понятно - банальная сортировка списка по последнему символу в каждом
 элементе
 2) Вероятно более быстрый, но в правильности и низкой памятеемкости
 сомневаюсь:
 Заводишь хэш: %list. Ключами будут H,L и т.д. Делаешь перебор @list, у
 очередного элемента выбираешь последнюю букву и вставляешь всю строку в список
 лежащий в $list{ОТА_ПОСЛЕДHЯЯ_БУКВА}
 что-то вроде этого:
 foreach my $uzel(@list) {
   push(@{$list{substr($uzel,-1,1)}},$uzel)
 }
 потом все это дело объединяешь:
 @list=map { @{$_} } values(@list);
 Вот. Ото последнее можно сильно оптимизировать. Для этого например можно
 использовать не хэши, а завести сколько-то массивов, с именами @H, @L и т.д и
 уже для каждого узла делать проверку - какая буква в конце и в зависимости от
 этого, выбирать массив куда добавлять этот узел.
 Hо в том что это быстрее банальной сортировки я не уверен, проверять - мне
 лениво. Если тебе надо БЫСТРО, то сам проверишь:).
 
 --- ifmail v.2.15dev5.3
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Отсортировать список   Alexander Pashchenko   03 Nov 2004 00:54:50 
 Отсортировать список   Serge Chervjakov   03 Nov 2004 01:33:05 
 Отсортировать список   Alexander Pashchenko   06 Nov 2004 09:40:04 
 Re: Отсортировать список   Andrew Alakozow   09 Nov 2004 11:48:42 
 Отсортировать список   Alexander Pashchenko   13 Nov 2004 16:56:28 
 Отсортировать список   Alexander Pashchenko   23 Nov 2004 00:51:42 
 Re: Отсортировать список   Andrew Alakozow   23 Nov 2004 11:53:22 
 Отсортировать список   Bulat Ziganshin   25 Nov 2004 11:48:25 
 Re: Отсортировать список   Roman V Tchemisov   03 Nov 2004 17:49:46 
Архивное /ru.perl/1667909006bbe.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional