朴泊斋

Damocles的思想笔记
    <<  Notification Chains机制分析 | 首页 | LXR(Linux Cross Reference)安装配置心得  >>
  • Unimodal Search - [康朴塔散思]

    2007-12-20

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://damocles.blogbus.com/logs/12357150.html

    一个array中所有的元素先升序排列,后降序排列称之为Unimodal,Unimodal Search就是要找到这个最大的值,O(lgn)的做法就是二分法查询,如果所取的元素大于两边的元素,则是最大值,如果左面大,就在左半边取,右面大,则在右半边取,直到取到为止。应用在convex中找端点的最大x坐标和最大y坐标。找最大的x坐标就是在原本的排列中进行Unimodal Search,找最大的y坐标就是从找到的最大的x坐标那个点开始寻找到第一个点,在这些点中进行Unimodal Search。代码片段如下,写的很挫,不过还是能运行的。
     1 int middle(int *UnimodalList,int middlenum)
    2 {
    3 if((UnimodalList[middlenum]>UnimodalList[middlenum-1])&&
    (UnimodalList[middlenum]>UnimodalList[middlenum+1]))
    4 return 1;
    5 else
    6
    return 0;
    7 }
    8 int left(int *UnimodalList,int middlenum)
    9 {
    10 if((UnimodalList[middlenum]1])&&
    (UnimodalList[middlenum]>UnimodalList[middlenum+1]))
    11 return 1;
    12 else
    13 return 0;
    14 }
    15
    16
    int UnimodalSearch(int * UnimodalList,int * indexp, int * maximump,int start, int end)
    17 {
    18 int size=NR_UnimodalList;
    19 int middlenum=(start+end)/2;
    20 if(middle(UnimodalList,middlenum))
    21 {
    22 *indexp=middlenum;
    23 *maximump=UnimodalList[middlenum];
    24 return 0;
    25 }
    26 else if(left(UnimodalList,middlenum))
    27 {
    28 return UnimodalSearch(UnimodalList,indexp,maximump,start,middlenum);
    29 }
    30 else
    31 {
    32 return UnimodalSearch(UnimodalList,indexp,maximump,middlenum,end);
    33 }
    34 return 1;
    35 }
    36

    历史上的今天:

    svn server and client configuration 2008-12-20
    LXR(Linux Cross Reference)安装配置心得 2007-12-20
    Notification Chains机制分析 2007-12-20
    Linux内核防火墙Netfilter实现机制 2007-12-20
    SSL过程 2007-12-20

    随机文章:

    Universal Hashing 2009-10-21
    symbol table for windbg 2009-08-07
    Use bridge networking in kvm guest os 2009-06-16
    Linkers and Loaders 2009-02-22
    ctrl-c的实现 2008-08-26

    收藏到:Del.icio.us




    Tag:Unimodal Search
    引用地址:
    Gu Zhongshu 发表于10:40:13 | 编辑 | 继续话题 | 转发 | 分享 0

搜索

最新日志

  • Universal Hashing
  • Fermat's little theorem
  • virtualized address translation
  • 请为我投票
  • 大庆
  • Use virtual machine manager to run JOS
  • 难道真有人和我同名?
  • fix bug in JOS file system
  • Erdős number
  • Interrupt-driven IDE disk access
全部日志>>

最新评论

  • cheap uggs:路过~支持个~
  • sunglasses:踩
  • xuanxuan:恩,这纪录片的确不错~~什么来历?(xuanxuan)...
  • 囧:提前打飞机?强大。
  • Ceci:我觉得今天北京看上去空气质量很差。。。 尤其是坦克冒黑...
  • Guanqun:我刚开始准备把网络的给做掉。...
  • Ceci:Impossible is nothing~
  • Ceci:btw 我才发现你右边的mm长得好像阿童木的咧。。。诡...
  • Ceci:诡异的小正太你好 我觉得把你的诡异照悄悄藏起来 哈哈...
  • Ceci:不看标题咋知道这是水长城,汗 我觉得第二张你应该放你的...
  • RSS 什么是RSS?
    用IM提醒我内容更新
    订阅到QQ邮箱
    订阅到鲜果阅读器
    订阅到Google阅读器
    订阅到抓虾阅读器
  • 《城客》第四期:创意之城
    博客大巴
    博客大巴使用指南
    博客大巴模板中心
    免费注册博客大巴
    一键博客搬家工具
    中文互动杂志城客
Copyright © 2002-2009 BlogBus.com, All Rights Reserved. 博客大巴 版权所有
博客大巴模板设计:乌镇·印象II | 作者: 饭团