The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Хэш из двух массивов"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Хэш из двух массивов"  
Сообщение от vova (??) on 21-Окт-08, 09:50 
Всем привет. Такая вот мини задачка есть:
Есть 2 одномерных массива
@1 = qw (vova
         vasia
         masha
         ....
)
@2 = qw ( Владимир Иванов
          Василий Петров
          Мария Сидорова
)
размерность массивов одинакова, в обоих 40 элементов. Нужно сделать из них хэш:
%1 = ("vova", "Владимир Иванов"
      "vasia", "Василий Петров"
       ...
)

подскажите плиз как это реализовать ? заранее спасибо.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Хэш из двух массивов"  
Сообщение от Heretic (ok) on 21-Окт-08, 11:53 
>[оверквотинг удален]
>
>)
>размерность массивов одинакова, в обоих 40 элементов. Нужно сделать из них хэш:
>
>%1 = ("vova", "Владимир Иванов"
>      "vasia", "Василий Петров"
>       ...
>)
>
>подскажите плиз как это реализовать ? заранее спасибо.

Я бы сделал так:

# Определение массивов
@1 = (vova, vasia, masha, dasha, petya, pivo, vobla, banya);
@2 = ( 'Владимир Иванов', 'Василий Петров', 'Мария Сидорова', 'Даша', 'Петя', 'Пиво', 'Вобла', 'Баня' );

# Разбор массива и занесение в хеш
for ($i=0; $i<@1; $i++) {
    %hash=(%hash, $1[$i], $2[$i]);
};

# Вывод с сортировкой в алфовитном порядке
foreach $key (sort keys %hash){
    print "$key => $hash{$key}\n";
}

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Хэш из двух массивов"  
Сообщение от Heretic (ok) on 21-Окт-08, 11:54 
И вообще:
http://www.opennet.me/docs/RUS/perl_hash/
http://www.cheeter.lv/uroki/perl/g5.html
http://www.codenet.ru/webmast/perl/array-howto.php#initializ...(clear)%20an%20array.
http://dklab.ru/chicken/nablas/20.html
http://valera.asf.ru/perl/book/3/3.2.html
http://perl.find-info.ru/perl/014/arrays.htm
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Хэш из двух массивов"  
Сообщение от vova (??) on 21-Окт-08, 12:10 
>[оверквотинг удален]
>
># Разбор массива и занесение в хеш
>for ($i=0; $i<@1; $i++) {
>    %hash=(%hash, $1[$i], $2[$i]);
>};
>
># Вывод с сортировкой в алфовитном порядке
>foreach $key (sort keys %hash){
>    print "$key => $hash{$key}\n";
>}

Спасибо. То что нужно.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Хэш из двух массивов"  
Сообщение от angra (ok) on 25-Окт-08, 00:25 
>%hash=(%hash, $1[$i], $2[$i]);

Отличный пример "кодерства", на каждой итерации цикла происходит копирование всего хеша, как следствие время выполнения растет квадратично. Для 40 элементов может и не быть критичным, а вот уже на 1000 дает замедление в 0.5 секунды, на 10000 мне надоело ждать завершения. В то же время $hash{$1[$i]}=$2[$i] на 1000 укладывается в 0.004 секунды, а на 10000 в 0.023 секунды.
Дети, учитесь программировать, а не быдлокодить. Также не стоит слепо доверять всему, что пишут на форумах.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Хэш из двух массивов"  
Сообщение от Heretic (ok) on 27-Окт-08, 16:39 
>>%hash=(%hash, $1[$i], $2[$i]);
>
>Отличный пример "кодерства", на каждой итерации цикла происходит копирование всего хеша, как
>следствие время выполнения растет квадратично. Для 40 элементов может и не
>быть критичным, а вот уже на 1000 дает замедление в 0.5
>секунды, на 10000 мне надоело ждать завершения. В то же время
>$hash{$1[$i]}=$2[$i] на 1000 укладывается в 0.004 секунды, а на 10000 в
>0.023 секунды.
>Дети, учитесь программировать, а не быдлокодить. Также не стоит слепо доверять всему,
>что пишут на форумах.

Ну сорри, как говорится, я не претендовал на корректность сего, я привел пример.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру