查找每个给定查询中的元素所属的数组以及元素的数量


简介

在编程世界中,数组发挥着基础性的作用,并广泛应用于各种应用程序。通常,在处理大型数组时,我们会遇到需要确定每个查询集中每个元素属于哪个数组的情况。在本文中,我们将探讨使用 C++ 查找每个查询对应的数组以及元素数量的高效方法。我们的任务是识别每个查询元素属于哪个数组,并为这些特定数组生成计数。

查找每个给定查询中的元素所属的数组以及元素的数量

假设有多个数组包含不同的元素集。现在想象一下,您收到一组查询,这些查询包含来自这些数组的各个元素。查找每个给定查询中元素所属数组的过程,以及一个示例,可以详细解释。

我们可以通过两种方式处理输入查询,一种是提示用户输入查询元素,另一种是定义查询元素。在下面的代码中,我们已将查询定义为 {9, 3, 8, 1, 5}。根据给定的 C++ 代码,它将检查给定数组中是否存在任何查询元素。如果在某些情况下元素存在,则计数将递增并打印出来。

示例

让我们从查询中取一个元素 9,然后在三个可用数组中检查该元素是否存在。该元素需要存在于指定索引值处的数组中,它在 array1 和 array3 中找到,但在 array2 中未找到。

array 1 和 array 2 的计数值将保持为 0,但在 array3 中它递增到 1。类似地,在所有情况下都会检查元素,并根据匹配情况打印出来。

  • Array1 有三个匹配项(元素 5、8 和 9)。

  • Array2 有两个匹配项(元素 5 和 8)。

查找每个给定查询中元素所属数组以及元素数量的 C++ 代码

为了有效地解决这个问题,让我们考虑一个场景,其中我们预先定义了两个单独的数组(Array1[],Array2[])并填充了不同的元素。

算法

  • 步骤 1 - 我们首先存储我们之前定义的数组以及它们各自的大小。

  • 步骤 2 - 查询输入元素在代码中初始化。

  • 步骤 3 - 保存三个数组计数的变量初始化为 0。

  • 步骤 4 - 当查询元素存在于任何数组中时,计数值将不断变化。

  • 步骤 5 - 遍历查询集中每个元素,将其与所有数组进行比较,并跟踪它属于哪些数组,然后我们可以找到查询匹配项。

  • 步骤 6 - 最后,打印语句将返回元素的数量。

示例

#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;
   }

}

输出

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

结论

提供的代码允许我们输入自定义数组并平滑地分析查询。此技术可以显著提高大型数组中查询处理的性能,使程序员能够有效地优化其应用程序。在本文中,我们演示了一种使用 C++ 确定每个查询元素所属数组以及出现次数的高效方法。

更新于:2023 年 8 月 25 日

69 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告