查詢每個給定查詢中的元素所屬的陣列以及元素的數量


簡介

在程式設計世界中,陣列發揮著基礎性的作用,並廣泛應用於各種應用程式。通常,在處理大型陣列時,我們會遇到需要確定每個查詢集中每個元素屬於哪個陣列的情況。在本文中,我們將探討使用 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 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.