算法训练 集合运算  
时间限制:1.0s   内存限制:512.0MB
  
问题描述
  给出两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。
输入格式
  第一行为一个整数n,表示集合A中的元素个数。
  第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。
  第三行为一个整数m,表示集合B中的元素个数。
  第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。
  集合中的所有元素均为int范围内的整数,n、m<=1000。
输出格式
  第一行按从小到大的顺序输出A、B交集中的所有元素。
  第二行按从小到大的顺序输出A、B并集中的所有元素。
  第三行按从小到大的顺序输出B在A中的余集中的所有元素。
样例输入
5
1 2 3 4 5
5
2 4 6 8 10
样例输出
2 4
1 2 3 4 5 6 8 10
1 3 5
样例输入
4
1 2 3 4
3
5 6 7
样例输出
1 2 3 4 5 6 7
1 2 3 4
 
 /*
B在A中的余集:表示A中有B中没有的元素。
*/
#include<stdio.h>
#include<string.h>
#define max 1000
int jiao[max]={},bing[max+max]={},yu[max]={},all[max+max]={};//分别表交集、并集、余集、和集
int lena,lenb;//a和b数组的长度
void MPup(int a[],int len){//冒泡升序
for(int i=; i<len-; i++){
for(int j=; j<len--i; j++){
if(a[j]>a[j+]){
int t = a[j];
a[j] = a[j+];
a[j+] = t;
}
}
}
}
void showjiao(int all[],int len){
int index=;//下标
for(int i=;i<len;i++){
if(all[i+] == all[i]){//如果当前遍历的元素和前一个元素相等
jiao[index++] = all[i];//存到bing中
}
}
for(int i=;i<index;i++){
printf("%d ",jiao[i]);
}
}
void showbing(int all[],int len){//求并集
int index=;//下标
bing[] = all[];
for(int i=;i<len;i++){
if(all[i] != all[i-]){//如果当前遍历的元素和前一个元素不相等
bing[index++] = all[i];//存到bing中
}
}
for(int i=;i<index;i++){
printf("%d ",bing[i]);
}
}
void showyu(int a[],int b[]){
int index=;//表索引
for(int i=;i<lena;i++)
{
int count=;
for(int j=;j<lenb;j++)
if(a[i]!=b[j])
count++;
if(count==lenb)
yu[index++]=a[i];
} for(int i=;i<index;i++){
printf("%d ",yu[i]);
}
}
int main(){
scanf("%d",&lena);
int a[lena];
for(int i=;i<lena;i++){
scanf("%d",&a[i]);
all[i]=a[i];
}
MPup(a,lena);//a排序
scanf("%d",&lenb);
int b[lenb];
for(int i=;i<lenb;i++){
scanf("%d",&b[i]);
all[lena+i]=b[i];
}
MPup(b,lenb);//b排序
MPup(all,lena+lenb);//和集排序
showjiao(all,lena+lenb);//求交集
printf("\n");
showbing(all,lena+lenb);//求并集
printf("\n");
showyu(a,b);//求余集
return ;
}

C语言 · 集合运算的更多相关文章

  1. R语言︱集合运算——小而美法则

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 集合运算的一般规则如下:    union(x ...

  2. 一般链表实现集合运算(C语言)

    最近在学习数据结构,遇到以下问题: 假设集合A = (c, b, e, g, f, d),B = (a, b, n, f),利用一般线性链表实现集合运算(A-B)∪(B-A). 分析: 上面的问题只要 ...

  3. 【Java EE 学习 28 上】【oracle学习第二天】【子查询】【集合运算】【几种数据库对象】

    一.子查询 1.为什么要使用子查询:问题不能一步求解或者一个查询不能通过一步查询得到. 2.分类:单行子查询和多行子查询. 3.子查询的本质:一个查询中包含了另外一个或者多个查询. 4.使用子查询的规 ...

  4. 详解SQL集合运算

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 ...

  5. SQL集合运算参考及案例(一):列值分组累计求和

    概述 目前企业应用系统使用的大多数据库都是关系型数据库,关系数据库依赖的理论就是针对集合运算的关系代数.关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式.不过我们在工作中发现,很多人 ...

  6. 【SqlServer系列】集合运算

    1   概述 已发布[SqlServer系列]文章如下: [SqlServer系列]SQLSERVER安装教程 [SqlServer系列]数据库三大范式 [SqlServer系列]表单查询 [SqlS ...

  7. Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...

  8. SQL Fundamentals || 多表查询(内连接,外连接(LEFT|RIGHT|FULL OUTER JOIN),自身关联,ON,USING,集合运算UNION)

    SQL Fundamentals || Oracle SQL语言 一.多表查询基本语法 在进行多表连接查询的时候,由于数据库内部的处理机制,会产生一些“无用”的数据,而这些数据就称为笛卡尔积. 多表查 ...

  9. SQL进阶系列之7用SQL进行集合运算

    写在前面 集合论是SQL语言的根基,因为这种特性,SQL也被称为面向集合语言 导入篇:集合运算的几个注意事项 注意事项1:SQL能操作具有重复行的集合(multiset.bag),可以通过可选项ALL ...

随机推荐

  1. 上传下载 demo

    import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.springf ...

  2. mongodb MongoDB 聚合 group(转)

    MongoDB 聚合 MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*). 基本语法为:db.col ...

  3. springboot 错误处理

    在 java web开发过程中,难免会有一些系统异常或人为产生一些异常.在 RESTful springboot 项目中如何优雅的处理? 分析:在RESTful 风格的springboot 项目中,返 ...

  4. django -- 用包来组织数据库模型

    默认情况下一个django app的所有模型都保存在一个叫models.py的文件中.这样事实是不方便管理的: 通过包来组织模型是比较方便的. 一.第一步:删除models.py: rm -rf mo ...

  5. AR模型与数据平稳性之间的关系

    作者:桂. 时间:2017-12-19  21:39:08 链接:http://www.cnblogs.com/xingshansi/p/8068021.html 前言 前几天碰到一个序列分析的问题, ...

  6. rocketMq排坑:如何设置rocketMq broker的ip地址

    在工作中遇到了一个这个问题,就是我们rocketmq是部署在云主机上的 但是我们的开发同事在自己的电脑连接rocketmq链接不上 报错显示Caused by: org.apache.rocketmq ...

  7. jQuery学习笔记(jquery.form插件)

    官网: http://malsup.com/jquery/form/ jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地.无侵入地升级HTML表单以支持Ajax.jQuery Fo ...

  8. 网页与APP中那些优美的登陆表单

    我从Dribbble收集了20个漂亮的登陆表单案例.希望你看后能从中受益,并对你以后的登陆表单设计有帮助.设计一个登陆表单是非常容易,但大多设计都很糟糕.毫无亮点.无论如何,这篇Dribbble案例集 ...

  9. Flink 中的kafka何时commit?

    https://ci.apache.org/projects/flink/flink-docs-release-1.6/internals/stream_checkpointing.html @Ove ...

  10. Rocket MQ 源码解析

    http://rocketmq.apache.org/rocketmq/the-design-of-transactional-message/ http://www.iocoder.cn/Rocke ...