算法导论14.3-7

来源:互联网 发布:山东省广电网络集团 编辑:程序博客网 时间:2024/06/05 02:11

  HOHO~~.话说好久没有长时间地钻研算法问题了,这次钻研了好几道,写出来了.感觉非常不错.而且,网吧旁边没有人,想写什么就写什么,哈哈.

  问题描述是这样的,一块电路板,上面镶嵌电气元件,涉及到分布问题.因为可能出现两块元件出现覆盖的问题,嗯.这就是问题的基本描述,接下来说下去.理所当然地使用区间树来解决这个问题,先将输入块按照X坐标排序,从而得到坐标的范围.只检查这个范围就好了.接下来,用一条线从左道右扫描这块区域,如果遇到块的左边,则依据该块的y坐标去区间树中检查是否出现重叠.这里需要说明的是,实现中包含了找出所有覆盖的块的方法以及仅找出覆盖的最左面的块的方法.具体的问题根据具体需要吧.毕竟是一道算法问题,没有大肆进行包装.呵呵.接着说下去.将这块的y坐标插入分区树中,无论是否出现重叠;如果,是某个块的右边,则从区间树中删除这个块,因为它已经不在当前的考察范围内了.

  就这样,进行下去了.思路很清晰,实现的细节不难.

  虽然是C++文件,我没有使用多少C++特性.感觉,用C++写得很舒服.嗯.这一轮的算法研究之后,就又继续C++了.如此往复,呵呵.

  总是这样,写的时候,琢磨着写出来之后,说说这,说说那.一旦写完了,不想说太多了.呵呵.

  贴出来吧.


原创粉丝点击