Форум: Форум C++Разное
Новые темы: 00
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: посчитать кол-во уникальных элементов массива
 
 автор: dima2207   (20.05.2010 в 00:13)   письмо автору
 
 

как посчитать хеш аналогично как в перле :


my %hash = ();

while(<LOG>){
    my ($ip_temp, $host_temp, $string_temp) = split(/\|/, $_);
        $hash{$host_temp."|".$ip_temp."|".$string_temp}++;
}

нужно посчитать кол-во уникальных элементов массива.
ос линукс компилятор gcc

  Ответить  
 
 автор: AlMag   (22.05.2010 в 04:58)   письмо автору
 
   для: dima2207   (20.05.2010 в 00:13)
 

А какого типа элементы в массиве?

  Ответить  
 
 автор: Miha_drinking_bout   (23.05.2010 в 04:46)   письмо автору
 
   для: dima2207   (20.05.2010 в 00:13)
 

Уникальных т.е. больше не встречающихся в данном массиве? В этом случае думаю подойдет конструкция if else. Берем 1й эл-т массива, по очереди сравниваем с остальными, если совпадение то переходим к следующему эл-ту массива если нет ни одного совпадения повышаем счетчик на единицу.
Если честно сам в CPP не разбираюсь, вроде в книге про сортировку где-то более правильные решения видел, а это неэффективный алгоритм.

  Ответить  
 
 автор: dima2207   (23.05.2010 в 18:31)   письмо автору
 
   для: Miha_drinking_bout   (23.05.2010 в 04:46)
 

да, явно мало эффективный алгоритм особенно если массив пару гигов .
тип массива у меня string

  Ответить  
 
 автор: Miha_drinking_bout   (01.06.2010 в 01:59)   письмо автору
 
   для: dima2207   (23.05.2010 в 18:31)
 

В Си есть библиотека string.h, представляющая набор функций для работы со строками:
strcmp(st1, st2) – сравнивает строки stl и st2. Возвращает в качестве результата сравнения целую величину:
< 0 когда st1 меньше, чем st2;
= 0 когда st1 равна st2;
> 0 когда stl больше, чем st2.

stricmp(st1, st2) – сравнивает строки st1 и st2, не делая различия между символами в нижнем и верхнем регистре.
strncmp(st1, st2, n) – сравнивает первые n символов строк st1 и st2.

  Ответить  
 
 автор: dima2207   (03.06.2010 в 02:14)   письмо автору
 
   для: Miha_drinking_bout   (01.06.2010 в 01:59)
 

мда... вы представляете сколько будет выполятся программа если массив пару гигов ? это ж надо сравнить каждый элемент массива с каждым и при этом считать кол-во совпадений.а если данные постоянно обновляются то программа вообще зациклится .

  Ответить  
 
 автор: Miha_drinking_bout   (04.06.2010 в 01:06)   письмо автору
 
   для: dima2207   (03.06.2010 в 02:14)
 

Не представляю, но догадываюсь. Не судите строго, сам начинаю С изучать и то урывками на сессиях. Возникли такие варианты:
1). Посмотреть как устроена какая нибудь реальная программа.
2). Создать область динамической памяти и т.к. ОЗУ не резиновое подгружать обрабатываемые данные частями по XXXмб. Можно конечно и целиком файл спроецировать в память, не знаю как? Пока с указателями не шибко разбирался(на экзамене разберусь). Записывать промежуточный результат обработки данных. Затем операцию повторять пока не доберемся до конца файла. А вот до алгоритмов сортировки я пока не дошел.
А данные структурированы?

  Ответить  
 
 автор: dima2207   (13.06.2010 в 15:59)   письмо автору
 
   для: Miha_drinking_bout   (04.06.2010 в 01:06)
 

воощем то задача казалось бы простая , берем первый эллемент массива прогоняем его на предмет соовпадений со всем массивом ставим счетчики и так далее, но опять же повторюсь что при обработки массива размером в пару гигов прога будет очень долго выполнятся даже дольше чем вышеуказанный скрипт на перле , почему так происходит ? неужели в перле реализован какойто более продвинутый алгоритм ?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования