0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 39
1

Найти элементы, которые есть в массиве А в нескольких экземплярах и отсутствуют в массиве В

15.03.2021, 12:07. Показов 560. Ответов 0
Метки c++ (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Прошу помощи с заданием. Задание звучит так : найти элементы, которые есть в нескольких экземплярах в массиве A и отсутствуют в массиве B. алгоритмы поиска: линейный, фибоначчи. Подскажите пожалуйста как сделать что бы искало значения которые есть только в нескольких экземплярах.

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include "Proj1.h"
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <cstring>
#include <algorithm>
 
using namespace std;
 
int rndm() {
    return rand() % 50;
}
 
int LinearSearch(int a[], int N, int Key, int* k)
{
    for (int i = 0; i < N; i++) {
        (*k)++;
        if (a[i] == Key)
            return i;
    }
 
    return -1;
}
 
 
int minn(int x, int y) { return (x <= y) ? x : y; }
 
int fibMonaccianSearch(int arr[], int x, int n, int* k)
{
 
    int fibMMm2 = 0; 
    int fibMMm1 = 1; 
    int fibM = fibMMm2 + fibMMm1; 
 
    while (fibM < n)
    {
        fibMMm2 = fibMMm1;
        fibMMm1 = fibM;
        fibM = fibMMm2 + fibMMm1;
    }
 
    int offset = -1;
 
    while (fibM > 1) {
        (*k)++;
 
        int i = minn(offset + fibMMm2, n - 1);
 
        if (arr[i] < x)
        {
            fibM = fibMMm1;
            fibMMm1 = fibMMm2;
            fibMMm2 = fibM - fibMMm1;
            offset = i;
        }
 
        else if (arr[i] > x)
        {
            fibM = fibMMm2;
            fibMMm1 = fibMMm1 - fibMMm2;
            fibMMm2 = fibM - fibMMm1;
        }
 
        else return i;
    }
 
    if (fibMMm1 && arr[offset + 1] == x)
        return offset + 1;
 
    return -1;
}
 
 
 
int main()
{
    int arr_s = 25;
    int* arr_f = new int[arr_s];
    int* arr_sec = new int[arr_s];
 
    srand(time(NULL));
    for (int i = 0; i < arr_s; i++) {
        arr_f[i] = rndm();
        arr_sec[i] = rndm();
    }
    cout << "Array first" << endl;
    cout << endl;
 
    for (int i = 0; i < arr_s; i++) {
        cout << arr_f[i] << " ";
    }
 
    cout << endl;
    cout << endl;
    cout << endl;
    cout << "Array second" << endl;
    cout << endl;
 
    for (int i = 0; i < arr_s; i++) {
        cout << arr_sec[i] << " ";
    }
    cout << endl;
    cout << endl;
    cout << endl;
    cout << "Linear search ";
 
    int counter_f = 0;
    for (int i = 0; i < arr_s; i++) {
        int result = LinearSearch(arr_sec, arr_s, arr_f[i], &counter_f);
        if (result == -1) cout << arr_f[i] << " ";
    }
 
    cout << endl;
    cout << "Counter " << counter_f << endl;
    cout << "Fibonachi search ";
    sort(arr_sec, arr_sec + arr_s);
    int counter_s = 0;
    for (int i = 0; i < arr_s; i++) {
        int result = fibMonaccianSearch(arr_sec, arr_f[i], arr_s, &counter_s);
        if (result == -1) cout << arr_f[i] << " ";
    }
    cout << endl;
    cout << "Counter " << counter_s << endl;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2021, 12:07
Ответы с готовыми решениями:

Вывести элементы, которые есть в массиве А в нескольких экземплярах и отсутствуют в массиве В
Задание : вывести на экран элементы, которые есть в массиве А в нескольких экземплярах и...

Найти элементы, которые есть в нескольких экземплярах в массиве A и отсутствуют в массиве B. алгоритмы поиска: линейный,
Здравствуйте! Очень прошу помощи с заданием. Оно звучит так : найти элементы, которые есть в...

Вывести элементы, которые присутствуют в нескольких экземплярах в массиве А, но отсутствуют в массиве В
Помогите пожалуйста! элементы, которые присутствуют в нескольких экземплярах в массиве А, но...

Найти элементы массива А, которые не повторяются и одновременно есть в массиве B в нескольких экземплярах
Всем привет, помогите пожалуйста довести код до ума, что бы выполнялось задание, которое описано в...

0
15.03.2021, 12:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2021, 12:07
Помогаю со студенческими работами здесь

Найти элементы массива A в одном экземпляре, которые есть в массиве B в нескольких экземплярах
Добрый час суток. Есть такая задача: У нас массивы A и B вводятся с клавиатуры. Нужно найти...

Вывести элементы в С, которые присутствуют в нескольких экземплярах либо только в массиве A, или массиве В
Вообщем необходимо Вывести в массив С элементы, которые присутствуют в нескольких экземплярах либо...

Неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах
неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах...

Помогите найти ошибку. Элементы, которые присутствуют в массиве А, но отсутствуют в массиве В
Доброго времени суток. Неверно выводится массив С - заносятся уникальные числа массива А и числа...

Найти элементы, которые присутствуют в массиве А, но отсутствуют в массиве В
Сломал всю голову, не могу придумать алгоритм. Есть два массива, которые вводятся с клавиатуры,...

Определить элементы, которые есть в первом и отсутствуют во втором массиве
помоги решить задачку: есть два datagrid'a, в них содержатся различные фамилии, нужно определить...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru