5 集合合并:给定一个字符串的集合,格式如: {aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh} 要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应输出 {aaa bbb ccc ddd hhh},{eee fff}, {ggg}(1)请描述你解决这个问题的思路;(2)请给出主要的处理流程,算法,以及算法的复杂度(3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。

题目

5 集合合并:

给定一个字符串的集合,格式如: {aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh} 要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应输出 {aaa bbb ccc ddd hhh},{eee fff}, {ggg}

(1)请描述你解决这个问题的思路;

(2)请给出主要的处理流程,算法,以及算法的复杂度

(3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。


相似考题
参考答案和解析
正确答案:
5 题
(1)思路:先将集合按照大小排列后,优先考虑小的集合是否与大的集合有交集。有就合并,如果小集合与所有其他集合都没有交集,则独立。独立的集合在下一轮的比较中不用考虑。这样就可以尽量减少字符串的比较次数。当所有集合都独立的时候,就终止。
(2)处理流程:
1.将集合按照大小排序,组成集合合并待处理列表
2.选择最小的集合,找出与之有交集的集合,如果有,合并之;如果无,则与其它集合是独立集合,从待处理列表 中删除。
3.重复直到待处理列表为空
算法: 1。将集合按照大小从小到大排序,组成待处理的集合列表。 2。取出待处理集合列表中最小的集合,对于集合的每个元素,依次在其他集合中搜索是否有此元素存在:
1>若存在,则将此小集合与大集合合并,并根据大小插入对应的位置 。转3。
2>若不存在,则在该集合中取下一个元素。如果无下一个元素,即所有元素都不存在于其他集合。则表明此集合独立,从待处理集合列表中删除。并加入结果集合列表。转3。
3。如果待处理集合列表不为空,转2。
如果待处理集合列表为空,成功退出,则结果集合列表就是最终的输出。
算法复杂度分析:
  假设集合的个数为n,最大的集合元素为m 排序的时间复杂度可以达到n*log(n) 然后对于元素在其他集合中查找,最坏情况下为(n-1)*m 查找一个集合是否与其他集合有交集的最坏情况是m*m*(n-1) 合并的时间复杂度不会超过查找集合有交集的最坏情况。所以最终最坏时间复杂度为O(m*m*n*n)
  需要说明的是:此算法的平均时间复杂度会很低,因为无论是查找还是合并,都是处于最坏情况的概率很小,而且排序后优先用最小集合作为判断是否独立的对象,优先与最大的集合进行比较,这些都最大的回避了最坏情况。
(3)可能的改进:
  首先可以实现将每个集合里面的字符串按照字典序进行排列,这样就可以将查找以及合并的效率增高。另外,可能采取恰当的数据结构也可以将查找以及合并等操作的效率得到提高。
更多“5 集合合并:给定一个字符串的集合,格式如: {aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh} 要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应输出 {aaa bbb ccc ddd hhh},{eee fff}, {ggg}(1)请描述你解决这个问题的思路;(2)请给出主要的处理流程,算法,以及算法的复杂度(3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。”相关问题
  • 第1题:

    单击网页中的“登录”按钮,将会执行的程序为(6)。 (6) 备选答案: A.aaa.asp B.bbb.asp

    C.ccc.asp D.ddd.asp


    正确答案:A
    A 解析:单击网页中的“登录”按钮,将会执行的程序为aaa.asp。

  • 第2题:

    请解释“func”为何种类型,这种类型的作用什么,变量ttt 的值是多少?

    typedef int (*func)(int, int*);

    int xxx(int a, int *p)

    {

    return a + *p;

    }

    int dowork(func aaa, int bbb, int *ccc)

    {

    return aaa(bbb, ccc);

    }

    int sss = 4;

    int ttt = dowork(&xxx, 3, &sss);


    正确答案:
     

  • 第3题:

    3 英文拼写纠错:

    在用户输入英文单词时,经常发生错误,我们需要对其进行纠错。假设已经有一个包含了正确英文单词的词典,请你设计一个拼写纠错的程序。

    (1)请描述你解决这个问题的思路;

    (2)请给出主要的处理流程,算法,以及算法的复杂度;

    (3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。


    正确答案:
    3 题
    (1)思路: 字典以字母键树组织,在用户输入同时匹配
    (2) 流程:
    每输入一个字母:
    沿字典树向下一层,
    a)若可以顺利下行,则继续至结束,给出结果;
    b)若该处不能匹配,纠错处理,给出拼写建议,继续至a);
    算法:
    1.在字典中查找单词
    字典采用27叉树组织,每个节点对应一个字母,查找就是一个字母
    一个字母匹配.算法时间就是单词的长度k.
    2.纠错算法
    情况:当输入的最后一个字母不能匹配时就提示出错,简化出错处理,动态提示可能 处理方法:
    (a)当前字母前缺少了一个字母:搜索树上两层到当前的匹配作为建议;
    (b)当前字母拼写错误:当前字母的键盘相邻作为提示;(只是简单的描述,可 以有更多的)
    根据分析字典特征和用户单词已输入部分选择(a),(b)处理
    复杂性分析:影响算法的效率主要是字典的实现与纠错处理
    (a)字典的实现已有成熟的算法,改进不大,也不会成为瓶颈;
    (b)纠错策略要简单有效 ,如前述情况,是线性复杂度;
    (3)改进
    策略选择最是重要,可以采用统计学习的方法改进。

  • 第4题:

    下列______是双精度型变量。

    A.AAA%

    B.BBB$

    C.CCC!

    D.DDD#


    正确答案:D

  • 第5题:

    氧传感器上面有加热电阻,阻值为2.8~3.7欧,请问哪两个针脚是这加热电阻的()

    AA和B

    BB和C

    CC和D

    DD和E


    D

  • 第6题:

    列入《中华人民共和国实施强制性产品认证的产品目录》产品,产品上应有认证标志是()

    • A、“AAA”
    • B、“BBB”
    • C、“CCC”
    • D、“DDD”

    正确答案:C

  • 第7题:

    You are using CTIDS in replication. You need to skip a transaction with the CTID of aaa-bbb-cccddd-eee : 3 on a slave. Which command would you execute from a Mysql prompt?()

    • A、STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE
    • B、STOP SLAVE; BEGIN; SET GTID_IGNORE="aaa-bbb-ccc-ddd-eee: 3"; COMMIT; START SLAVE
    • C、STOP SLAVE; SETGTID_NEXT="aaa-bbb-ccc-ddd-eee: 3"; BEGIN; COMMIT; SET GTID_NEXT="AUTOMATIC"; START SLAVE
    • D、STOP SLAVE; RESET SLAVE; BEGIN; SKIP NEXT GTID; COMMIT; START SLAVE

    正确答案:C

  • 第8题:

    目前建设银行客户信用等级分为()

    • A、AAA级、AA级、A级、B级、C级
    • B、AAA级、AA级、A级、BBB级、BB级、B级、C级
    • C、AAA级、AA级、A级、BBB级、BB级、B级、F级
    • D、AAA级、AA级、A级、BBB级、BB级、B级、CCC级、CC级、C级D级

    正确答案:C

  • 第9题:

    单选题
    土星环中最大的缝隙—卡西尼缝,位于哪两个光环之间?()
    A

    A和B

    B

    B和C

    C

    C和D

    D

    D和E


    正确答案: A
    解析: 暂无解析

  • 第10题:

    单选题
    购电器产品时,最好选什么标志()
    A

    最好选“CCC”标志

    B

    “BBB”标志

    C

    “AAA”标志

    D

    “DDD”标志


    正确答案: D
    解析: 暂无解析

  • 第11题:

    单选题
    列入《中华人民共和国实施强制性产品认证的产品目录》产品,产品上应有认证标志是()
    A

    “AAA”

    B

    “BBB”

    C

    “CCC”

    D

    “DDD”


    正确答案: B
    解析: 暂无解析

  • 第12题:

    问答题
    请简述一个客户端如何通过DNS服务器连接域名aaa.bbb.ccc的主机。

    正确答案: 1.客户端向DNS服务器发出载有需要解释的域名信息的请求。
    2.DNS服务器接收请求后取出域名信息翻译成相应的IP地址并把结果返回给客户端。
    3.客户端接收到结果后连接相应的IP地址
    解析: 暂无解析

  • 第13题:

    若有char s[3][3]=={"AAA","BBB","CCC"};说明语句,则与它等价的语句是( )。

    A.char**s={"AAA","BBB","CCC"};

    B.char*s[3]={"AAA","BBB","CCC"};

    C.char s[][5]={"AAA","BBB","CCC"};

    D.char s[][3]={"AAA","BBB","CCC"};


    正确答案:D

  • 第14题:

    请问下述代码中: int operator+(…)起什么作用?this 是什么?ccc 的值最终为多少?

    class Fruit

    {

    public:

    Fruit()

    {

    weight = 2;

    }

    Fruit(int w)

    {

    weight = w;

    }

    int operator+(Fruit f)

    {

    return this->weight * f.weight;

    }

    private:

    int weight;

    };

    Fruit aaa;

    Fruit bbb(4);

    int ccc = aaa + bbb;


    正确答案:
     

  • 第15题:

    下列中 a的值是_________

    #define AAA 200

    #define BBB AAA+100

    int a= BBB*2


    正确答案:
     

  • 第16题:

    下列对债券等级按安全性,从低到高排列正确的是( )

    A.AAA、BBB、CCC、D

    B.A、AA、AAA、D

    C.D、CCC、BBB、AAA

    D.AA、BB、CC、D


    正确答案:C

  • 第17题:

    什么是P类问题?什么是NP类问题?请描述集合覆盖问题的近似算法的基本思想。


    正确答案:用确定的图灵机可以在多项式实践内可解的判定问题称为P类问题。
    用不确定的图灵机在多项式实践内可解的判定问题称为P类问题。
    集合覆盖问题的近似算法采用贪心思想:对于问题,每次选择F中覆盖了尽可能多的未被覆盖元素的子集S,然后将U中被S覆盖的元素删除,并将S加入C中,最后得到的C就是近似最优解。

  • 第18题:

    某监控系统组态了4个用户,用户名分别为“aaa”、“bbb”、“ccc”和“ddd”,他们的用户级别分别为“操作工级”、“班长级”、“工程师级”和“系统管理员级”;且在定义中间变量Var时设置其安全级别为“班长级”。试问:在运行系统中,可定义新用户的用户有()。

    • A、“aaa”、”bbb”
    • B、“bbb”、“ccc”
    • C、“ccc”、“ddd”
    • D、“aaa”、“ddd”

    正确答案:C

  • 第19题:

    “增贷保”业务对客户的信用评级要求为()

    • A、BBB-级以上(含BBB-)
    • B、BB级以上
    • C、BBB级以上(含BBB)
    • D、CCC级以上

    正确答案:A

  • 第20题:

    请简述一个客户端如何通过DNS服务器连接域名aaa.bbb.ccc的主机。


    正确答案: 1.客户端向DNS服务器发出载有需要解释的域名信息的请求。
    2.DNS服务器接收请求后取出域名信息翻译成相应的IP地址并把结果返回给客户端。
    3.客户端接收到结果后连接相应的IP地址

  • 第21题:

    问答题
    什么是P类问题?什么是NP类问题?请描述集合覆盖问题的近似算法的基本思想。

    正确答案: 用确定的图灵机可以在多项式实践内可解的判定问题称为P类问题。
    用不确定的图灵机在多项式实践内可解的判定问题称为P类问题。
    集合覆盖问题的近似算法采用贪心思想:对于问题,每次选择F中覆盖了尽可能多的未被覆盖元素的子集S,然后将U中被S覆盖的元素删除,并将S加入C中,最后得到的C就是近似最优解。
    解析: 暂无解析

  • 第22题:

    单选题
    对公司类客户中间业务收入中确实无法对应至客户的收入,账务处理人员收取费用时录入公共客户号(),将该项收入计入公共客户下。
    A

    AA999999

    B

    BB999999

    C

    CC999999

    D

    DD999999


    正确答案: B
    解析: 暂无解析

  • 第23题:

    单选题
    大家均摊的付款方式可用"()"来表示
    A

    AA制

    B

    BB制

    C

    CC制

    D

    DD制


    正确答案: B
    解析: 暂无解析