Форум программистов, компьютерный форум, киберфорум
Наши страницы

Пересечение множеств - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сравнение векторов http://www.cyberforum.ru/cpp-beginners/thread849456.html
Вот имеется вектор <bool> длиной допустим 5, а второй вектор <bool> длиной 200. Вот мне надо сравнить первый вектор с частью второго, зная размер первого. Вот так не получилось if(fs ==...
C++ Заполнить массив А(10) случайными числами. Подсчитать и вывести на экран количество элементов массива, кратных 7 и не кратных 3 1) Заполнить массив А(10) случайными числами. Подсчитать и вывести на экран количество элементов массива, кратных 7 и не кратных 3. 2)Дан массив R(5). Значения элементов массива ввести с... http://www.cyberforum.ru/cpp-beginners/thread849447.html
Дан одномерный массив,введенный с клавиатуры C++
Дан одномерный массив,введенный с клавиатуры. -Найти сумму неотрицательных элементов в каждой строчке. -Сформировать вектор В из элементов побочной диагонали
C++ Найти минимальный элемент в матрице и посчитать количество отрицательных элементов,расположенных выше главной диагонали.
Напишите программу формирования массива C(n,n) с помощью датчика случайных чисел из промежутка. -Найдите минимальный элемент и поменяйте его с первым элементом массива. -посчитать количество...
C++ хеширование http://www.cyberforum.ru/cpp-beginners/thread849436.html
Написать функцию int incl_lexm (char *p_lexm, char type _lexm), которая методом хеширования для строки, адресуемой p_lexm, определяет свободную позицию в таблице tabl, и если в ней отсутствует...
C++ Поиск минимального элемента идеально сбалансированного дерева Как найти минимальный элемент? Вообще не представляю. зы. Дерево поиска другой разговор. подробнее

Показать сообщение отдельно
mat_for_c
164 / 159 / 34
Регистрация: 26.04.2013
Сообщений: 724
Завершенные тесты: 3
27.04.2013, 15:34  [ТС]
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
bool* id_rows;
void intersect(double* a, double* b, long long n, long long k, long long* id_sort)
{
// функция для нахождения пересечения множеств
// точнее для индексов пересечения
    long long i = 0;
    long long j = 0;
    while (i != n && j != k)
    {
        if(a[i] < b[j])
            ++i;
        else
            if(b[j] < a[i])
                ++j;
            else {
                // запись индекса
                id_rows[id_sort[i]] = true;
                ++i;
            }
    }
}
 
void main()
{
    ...
    id_rows = new bool[len_indexnW];
    memset(id_rows, 0, len_indexnW);
    // создаем массив индексов
    long long* id = new long long[len_indexnW];
    for (long long i = 0; i < len_indexnW; ++i)
    {
        id[i] = i;
    }
    for (long long i = 0; i < col_count-1; ++i)
    {
        ...
        // массив индексов, который будем сортировать 
        // вместе с исходным множеством А
        long long* id_sort = new long long[len_indexnW];
        memcpy(id_sort, id, len_indexnW * sizeof(long long));
        // быстрая сортировка
        quicksort(Mnw_column[i], id_sort, 0, len_indexnW-1);
        intersect(Mnw_column[i], nWfeatValues, len_indexnW, len_diff, id_sort);
    }
    long long* RowZerosMw = NULL;
    long long len_RowZerosMw = 0;
    for (long long i = 0; i < len_indexnW; ++i)
    {
        if(id_rows[i] == true)
        {           
            RowZerosMw = (long long*)realloc(RowZerosMw,  (++len_RowZerosMw)*sizeof(long long));
            RowZerosMw[len_RowZerosMw-1] = i;
        }
    }
}
Что можете сказать про такой метод? Будет ли он работать быстрее, чем через set?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru