Find the array to which each element in given queries belong along with count of elements


Introduction

In the world of programming, arrays play a fundamental role and are extensively used in various applications. Often, while working with large arrays, we come across situations where we need to determine to which array each element in each set of queries belongs. In this article, we will explore an efficient approach using C++ to find the corresponding array for each query along with the count of elements. The task at hand is to identify which array each query element belongs to and generate a count for those specific arrays.

Find the array to which each element in given queries belong along with count of elements

Consider having multiple arrays containing different sets of elements. Now imagine receiving a set of queries that consist of individual elements from these arrays. The process behind finding the array to which each element in given queries belong can be explained in detail along with an example.

There are two ways, in which we can deal with the input queries, one is by prompting the user to enter the query elements and the other is by defining it. In the below code, we have defined the queries as {9, 3, 8, 1, 5}. Based on the C++ code given, it will check whether any of the query elements is present in the given arrays. If in some case, the elements are present, then the count will be incremented and gets printed.

Example

Let’s take an element from the query that is 9 and we can check in the three available arrays, whether the element is present. The element needs to be present in the array at the mentioned index value, it is found in array1 and array3 but not in array2.

The count value will remain same for array 1 and array 2 as 0 but in array3 it is incremented to 1. Similarly, the elements are checked in all cases and gets printed based on the match,

  • Array1 has three matches (elements 5, 8, and 9).

  • Array2 has two matches (elements 5 and 8).

C++ Code to find the array to which each element in given queries belong with count of elements

To solve this problem efficiently, let's consider an scenario where we have 2 separate arrays (Array1[], Array2[] ) defined and populated with distinct elements beforehand.

Algorithm

  • Step 1 − We start by storing our previously defined arrays along with their respective sizes.

  • Step 2 − The querying input elements are initialized in the code.

  • Step 3 − The variables that holds the count of three arrays are initialized to 0.

  • Step 4 − When the query elements are present in any of the array, then the count value will be kept on changing.

  • Step 5 − Iterate through each element in the set of queries, comparing it with all arrays and tracking which arrays it belongs to and then we can find the query matches.

  • Step 6 − Finally, the print statement will return the count of elements.

Example

#include <iostream>
using namespace std;

#define MAX_SIZE 100 // Maximum size for individual array

int main() {
   int Array1[MAX_SIZE] = {5, 8, 9};   // initialization of array elements
   int Size1 = sizeof(Array1) / sizeof(Array1[0]);

   int Array2[MAX_SIZE] = {10, 12, 5, 8};
   int Size2 = sizeof(Array2) / sizeof(Array2[0]);

   int queries[] = {9, 3, 8, 1, 5}; // Initializing the queries

   int numQueries = sizeof(queries) / sizeof(queries[0]);

   // Initialization
   int countArray1 = 0;
   int countArray2 = 0;

   // Finding matches for each query element
   for (int i = 0; i < numQueries; i++) {

      // Array1 check
      for (int j = 0; j < Size1; j++) {
         if (queries[i] == Array1[j]) {
            countArray1++;
            break;
         }
      }

      // Array2 check
      for (int k = 0; k < Size2; k++) {
         if (queries[i] == Array2[k]) {
            countArray2++;
            break;
         }
      }

   }
    
   cout << "Query Elements Distribution:" << endl;

   if (countArray1 > 0) {
      cout << "- Element(s) from Query found in Array1. Count: " << countArray1 << endl;
   }

   if (countArray2 > 0) {
      cout << "- Element(s) from Query found in Array2. Count: " << countArray2<<endl;
   }

}

Output

Query Elements Distribution:
- Element(s) from Query found in Array1. Count: 3
- Element(s) from Query found in Array2. Count: 2

Conclusion

The provided code allows us to input custom arrays and analyze queries smoothly. This technique can significantly enhance query processing performance in larger arrays, enabling programmers to optimize their applications efficiently. In this article, we have demonstrated an efficient approach to determining which array each queried element belongs to along with the count of occurrences using C++.

Updated on: 25-Aug-2023

42 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements