Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/23: Рейтинг темы: голосов - 23, средняя оценка - 4.78
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1

Самый производительный способ сравнения массивов

07.08.2011, 00:24. Показов 4546. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос этот давно интересует. Нигде не попадалась инфа об этом.
Может есть какая-то уже готовая функция, которая умеет это делать?
Пока что только знаю такой способ - создание 2-х деревьев из массивов и их сравнение - этот способ считаю самым быстрым. Есть ли более быстрый способ (либо функция), чем с деревьями + на который бы ушло немного времени на кодирование?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.08.2011, 00:24
Ответы с готовыми решениями:

Выбираем самый производительный ноутбук от 15к-18к рублей
Главным критерием выбора оптимальная начинка ноута, нужен чтобы можно поиграть, но при этом другие качества не отставали. Бюджетом...

Собрать самый производительный игровой комп, какой только возможно.
Я заядлый геймер которому не жалко денег. Я хочу создать мега мощный ПК. Тут у меня возникла проблема с подбором комплектующих... ...

Быстрый способ сравнения файлов
На одном форуме прочел коммент пользователя: Как реализовать чтение по кластерам и сравнение в памяти? Сравнение по байтам, по хэшу...

39
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
09.08.2011, 09:59
Студворк — интернет-сервис помощи студентам
kzru_hunter, Тебе еще учиться и учиться, set это STL - Standart Templates Library и Algorithm.h тоже, и все это как минимум стандартные компоненты! просто если ты считаешь что установил Буилдер, и теперь нужно пользоваться тем что есть в коробки(Так как буилдер туда это все запихал) это большая ошибка! помимо стандартного есть куча разных библиотек и компонентов(сторонних) которые тебе помогут решить твою задачу, а то что ты не знаешь, не умеешь или тебе просто не охота использовать set - это уже твоя проблема! а не программистов, пиши комментарии, что бы ты потом мог разобраться, а нормальный программист разберет все что угодно
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
09.08.2011, 10:51  [ТС]
иди учи свой линукс и засоряй этот раздел
1
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
09.08.2011, 11:09
прекращаем флудить!
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
09.08.2011, 11:14
Если тебе трудно даже стандарты выучить, тогда какой из тебя программист? Ссылаясь на то что это будет кому то не понятно, не задумываясь, что это не понятно только тебе!

Добавлено через 1 минуту
+ еще раз повторюсь STL это стандартная библиотека шаблонов, в которой довольно мощно реализованы контейнеры и метода для работы с ними!
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
09.08.2011, 11:28
_стандартные_алгоритмы_(STL) для того и разработаны, и потому и называются _стандартными_. не за чем рукоблудить. при том, что лучше все равно не получится.

полная дока по _стандартной_библиотеке_: http://cplusplus.com/reference/

и пожалуйста, без оффтопа/флуда.
2
09.08.2011, 12:16

Не по теме:

niXman, Вы бы указали, что mingw-4.6.0+boost-1.46.1+openssl-1.0.0d+libtorrent-rasterbar-0.15.6 - это архив 7z , а той мой файрфокс пытался полчаса загрузить эту страницу :(

0
09.08.2011, 12:25

Не по теме:

а файерфоксы не умеют определять на что ссылка указывает? оО

0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
09.08.2011, 12:28  [ТС]
одни слова, хоть бы кодом помогли.
и тема совсем не про set, а про сравнение массивов. set уходит на второе место.
больше не надо тут про set писать. мне нужен код, а не пустые слова.

есть ещё одна проблема: set упорядочивает след. образом:
Wdsa
dsasa
ffds
yty
т.е. буквы с верхним регистром идут первее букв с нижним.

Очевидно, нужно чтобы было так:
dsasa
ffds
yty
Wdsa

Прошу не флудить или учить, а помочь кодом.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
09.08.2011, 12:34
Цитата Сообщение от kzru_hunter Посмотреть сообщение
есть ещё одна проблема: set упорядочивает след. образом:
Wdsa
dsasa
ffds
yty
т.е. буквы с верхним регистром идут первее букв с нижним.
Очевидно, нужно чтобы было так:
dsasa
ffds
yty
Wdsa
а в доку заглянуть не судьба?
что вторым параметром шаблона идет?

зы
set ни в чем не виноват.
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
09.08.2011, 13:02
Зацени!!
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
09.08.2011, 13:19  [ТС]
ну это понятно, что вторым параметром идет сравнение.
что туда нужно подставить?
можете код вставить, как я просил? или опять поучения да ссылки?
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
09.08.2011, 14:18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <set>
#include <string.h>
using namespace std;
 
class MySort
{
    public:
    bool operator ()(string a1,string a2)
    {
        return a1.compare(a2);
    }
};
 
int main(void)
{   
    set<string,MySort > a;
    set<string,MySort >::iterator i;
    a.insert("Wasd");
    a.insert("dsasa");
    a.insert("ffds");
    a.insert("yty");
    for (i=a.begin();i!=a.end();i++)
        cout<<*i<<endl;
    
}
Если будешь брать примеры с некоторых людей, в будущем ты не одной программы не напишешь без помощи форума
 Комментарий модератора 
Хватит оффтопить и переходить на оскорбления пользователей.


Добавлено через 21 минуту
а щас и не трудно следующий вопрос твой предположить!!
))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <set>
#include <string.h>
#include <ctype.h>
using namespace std;
 
class MySort
{
    public:
    bool operator ()(string a1,string a2)
    {
        string t1(a1),t2(a2);
        for (int i=0;i<t1.length();i++)
            if (isupper(t1[i])) t1[i] = tolower(t1[i]);
        for (int i=0;i<t2.length();i++)
            if (isupper(t2[i])) t2[i] = tolower(t2[i]); 
        return (t1<t2);
    }
};
 
int main(void)
{   
    set<string,MySort > a;
    set<string,MySort >::iterator i;
    a.insert("Wasd");
    a.insert("dsasa");
    a.insert("ffds");
    a.insert("yty");
    for (i=a.begin();i!=a.end();i++)
        cout<<*i<<endl;
    return 0;
}
результат
Bash
1
2
3
4
5
pomka@Computer:~/cpp/C$ ./a.out 
dsasa
ffds
Wasd
yty
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
09.08.2011, 14:49  [ТС]
Цитата Сообщение от pomkalk Посмотреть сообщение
Если будешь брать примеры с некоторых людей, в будущем ты не одной программы не напишешь без помощи форума
я уже достаточно написал прог. и вообще, иди прочь с моей темы, не заходи больше на мои темы! ты бесполезен в этом разделе! флуди в другом. также твой код ниочем.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
09.08.2011, 16:29
Ну вообще то название темы реально дезооринтирует.
Действительно если коменты писать влом ну хотя бы задачу описали да ссылочка не помешала бы на то что такое симмитричная разница.

И все же для чего вам это чудо математики?
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
09.08.2011, 17:39  [ТС]
просто заготовку хочу сделать. вдруг может понадобится.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
09.08.2011, 17:45
Заготовку для чего? В какой сфере?
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
10.08.2011, 10:06  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Заготовку для чего? В какой сфере?
это может хоть где пригодиться, где придется что-то сравнивать. поэтому решил сделать заранее. я просто не люблю, когда программы тормозят. есть такие прогеры, которые делают тормозные программы, не подозревая, что есть более производительный способ.

вообщем, я уже забил на это. когда нужно будет это делать, буду подстраиваться по обстоятельства.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.08.2011, 10:42
Ну блин иногда производительность не играет роли. Например важнее скорость разработки приложения или более важно обработать нюансы с интерфейсом, исключениями.
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
10.08.2011, 10:50  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
скорость разработки приложения
Цитата Сообщение от Avazart Посмотреть сообщение
производительность
вот эти две проблемы я их хотел решить в данной теме: сделать быстродействующую функцию, которая бы сравнивала массивы и находила либо разность либо объединение.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
10.08.2011, 20:14
И тем не менее я слабо представляюю где это можно использовать.

Добавлено через 7 часов 26 минут
А да, как вы собираетесь решать проблему с уникальностью элементов без set ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.08.2011, 20:14
Помогаю со студенческими работами здесь

Самый удобный способ рисовать
Требуется рисовать элементы постепенно, в ответ на события (нажал кнопку - появился прямоугольник) Раньше делал это по координатам через...

Самый простой способ рисования
Здравствуйте. Недавно перешёл на Qt и вот появилась потребность нарисовать обычный прямоугольник без заливки. Начал читать документацию......

Самый быстрый способ склеивания строк
Закешировал файл в строку, десериализовал данные в массив экземпляров специально созданного класса. Далее обработал данные, и пытаюсь опять...

Самый простой способ воспроизведения музыки
Здравствуйте, хочу создать на сайте раздел с музыкой. Нашел различную инфу напримет http://atimstudio.ucoz.ru/index/0-80. Но хочется...

Какой способ рисования самый быстрый?
Вот нашел интересный код рисования на WinApi, переводил с языка С++: procedure TForm1.Button1Click(Sender: TObject); var hMemDC:HDC;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru