首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

求高效算法.有挑战精神的进.多谢

2012-03-13 
求高效算法.有挑战精神的进.在线等,谢谢问题:一定单信息:结构如下广告1:电视台1,电视台2....广告2:电视台2

求高效算法.有挑战精神的进.在线等,谢谢
问题:
        一定单信息:结构如下
广告1:电视台1,电视台2   ....
广告2:电视台2,电视台3   ....
.
.
其中广告用AD表示,电视台用TV表示(可以用TV_ID表示,INT型).(其中AD,TV的数目可能很多,所以不适合用FOR循环)
如一定单信息:
      AD1   :   TV2,TV3,TV4
      AD2   :   TV1,TV2,TV4
      AD3   :   TV2,TV4,TV5
我要得到的结果是:对上面的信息进行处理,加入一版本信息   REGION,得到的结构如下:
版本1:
      AD2                   :   TV1
版本2:
      AD1,AD2,AD3   :   TV2
版本3:
      AD1                   :   TV3
版本4:
      AD1,AD3           :   TV4
版本5:
      AD2,AD3           :   TV5
即:后面的电视台不能重复.
例如不能:
版本1:
      AD2                   :   TV1
版本2:
      AD1,AD3           :   TV2,TV4(注意)
版本3:
      AD1                   :   TV3
版本4:
      AD1,AD2           :   TV2(注意)
版本5:
      AD2,AD3           :   TV5
上面有2个版本重复了TV2.所以不符合要求.

我的想法是用链表类:把每条广告及对应的电视台放一链表中,其中按TV_ID的大小由小到大排列;然后利用一算子,一向下移动方法去比较.还有一版本类:把相同电视台的广告放一起,得出结果后再进行处理,把相同电视台的广告合并到一个类元素中.如:
版本:
      AD1,AD3           :   TV2
版本:
      AD1,AD2           :   TV2
合并为:
版本:
      AD1,AD2,AD3   :   TV2
以保证电视台不重复.

我觉得这种算法还行:例如3条广告,每条广告对应5个电视台,则只需要   3*5   =   15   次,如果用FOR循环则比较次数较多,不适合大量数据.

对我的说明有不明白的地方可以指出来.
现求更高效的算法,希望大家发表自己的看法.谢谢.


     



[解决办法]
简单的二元关系 <AD, TV> , 楼主不要低估计算机的性能



[解决办法]
分解,排序,合并。

热点排行