求兩個集合的交集 上海大學題庫

2021-10-10 13:49:14 字數 656 閱讀 5831

【問題描述】輸入兩個由整型數構成的集合(元素個數均為5)分別放到陣列a和b中,求這兩個集合的交集(交集的元素由兩個集合中的相同元素構成),最後輸出交集中的元素,要求在主函式中輸入a和b陣列,並輸出交集中的元素,在被調函式中實現求這兩個集合的交集。

【輸入形式】

從鍵盤輸入陣列a和b(元素個數均為5)。

【輸出形式】

交集中的元素

【樣例輸入】(下劃線部分為鍵盤輸入,其餘部分為程式輸出)

please enter array a,5 digits: 1 2 3 4 5

please enter array b,5 digits: 3 4 5 6 7

【樣例輸出】

a b intersection is: 3 4 5

【樣例說明】

輸入提示符後要加乙個空格。例如「please enter array a,5 digits: 」,其中「:」後要加乙個且只能乙個空格。

輸出資料之間空一格。

英文本母區分大小寫。必須嚴格按樣例輸入輸出。

#include

#include

#include

voidf(

int a,

int b)

intmain()

兩個有序集合求交集

方案一 暴力法,for for,時間複雜度o n n 當資料量很大時,不可取 方案二 拉鍊法 有序集合1 有序集合2 兩個指標指向首元素,比較元素的大小 1 如果相同,放入結果集,隨意移動乙個指標 2 否則,移動值較小的乙個指標,直到隊尾 這種方法的好處是 1 集合中的元素最多被比較一次,時間複雜度...

兩個整數集合最快演算法求交集

b 兩個整數集合,設計乙個演算法求他們的交集,盡可能的高效。一 第一種演算法,暴力求解,直接採用遍歷或者列舉的方法,這種辦法最簡單易想,但是時間複雜度比較高,為 o n 2 這是最複雜的情況。二 預處理。其實思想和c語言中的預處理一樣,對資料記性歸一化處理。說白了,就是對陣列先進行排序。陣列排序的演...

求兩個集合的交集和並集

交集 用兩個指標分別指向兩個陣列的頭部。如果其中乙個元素比另乙個小,後移小的那個陣列的指標 如果相等,那麼把該元素新增到交集裡,同時後移兩個陣列的指標。一直這樣操作下去,直到有乙個指標超過陣列範圍。public list intersection int a,int b else return re...