一题我们老师留的题,大家有什么好的算法

101_halg 2003-11-23 10:30:56
集合表达式运算

操作符:并(+)、交(*)、差(-)
每个操作符实现算法的时间复杂度至多O(n*n)
输入:文件input.txt,下面给出一个input.txt文件的格式样例。

(((A+B)*(C-B))-A)#
A={3,7,89,34,2,9}#
B={9,76,2,56}#
C={56,78,3,2,7,9,45,32,89}#

输出:计算结果写入文件output.txt。如上input.txt文件对应的output.txt如下.
(((A+B)*(C-B))-A)={}#
注:输入输出的集合可以是空集“{}”



大家有好的程序嘛,贴出来看看
...全文
24 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
12s 2003-11-25
  • 打赏
  • 举报
回复
+:
1)有序化每个集合A,B(假设为数组且足够大)。
2)将A中每个元素利用二分查找法处理
若查找不成功则添加到A尾。O(n*long2n)
-与*原理相同。不知道行不行?
tass 2003-11-24
  • 打赏
  • 举报
回复
up
levinjoe 2003-11-23
  • 打赏
  • 举报
回复
首先将每个集合有序化,这样便可在0(m+n)效率下实现集合运算,再编译个中缀表达式求值过程!这些都有很多旧贴,编的话就没时间了,大家都很忙,有自己的事!
ZhangYv 2003-11-23
  • 打赏
  • 举报
回复
简单,如果集合项的大小不是很大可以直接用数组来做O(1)
否则用链表,正好O(n*n)
代码转载自:https://pan.quark.cn/s/8d992366f87c 在详细研究Android源代码布局之前,必须认识到Android作为一个开源操作系统的关键意义。 它在全球移动操作系统领域中占据主导地位,由Google负责管理和维护。 Android的开放源代码特性赋予了开发者修改和定制系统的自由,支持创建个性化的操作系统版本或开发各类应用程序。 本分析旨在揭示Android源代码的基本组织框架。 一、源代码布局1. 第一层文件夹结构Android源代码主要划分为多个顶层文件夹,每个文件夹均承担着独特的功能与用途。 2. bionic文件夹bionic作为Android的C/C++执行环境库,整合了诸如libc和libm的标准库。 它提供了与Linux内核交互的基础调用接口,同时也是Android运行应用程序的基石。 3. bootloader文件夹bootloader是设备启动流程中首先执行的代码段,负责内核加载和硬件初始化。 此文件夹内含启动加载程序(例如U-Boot)以及与引导过程相关的代码。 4. build文件夹build文件夹汇集了构建Android系统的脚本与工具。 借助这些脚本,开发者能够编译并打包Android系统镜像,依据不同设备的配置生成相应的系统包。 5. dalvik文件夹Dalvik是Android早期版本中运行的虚拟机,负责执行.dex格式的字节码。 尽管当代Android系统已采用ART(Android运行时)替代,但Dalvik的遗代码和历史资料仍在此处保存。 6. development文件夹development文件夹包含了用于Android系统开发与测试的工具和资源,例如模拟器、测试架构和调试工具。 7. external文件夹...

33,029

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧