?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 南软g开发浅谈算法和数据l构: W号表及其基本实?南软g开发|׃软g开?南赢dU技软g开发公?/title> <meta name="keywords" content="南软g开发浅谈算法和数据l构: W号表及其基本实?/> <meta name="description" content="一W号表在开始介l查扄法之前,我们需要定义一个名为符可QSymbolTableQ的抽象数据l构Q该数据l构cM我们再C#中用的DictionaryQ他是对h键值对元素的一U抽象,每一个元素都有一个key和valueQ我们可以往里面"/> <link href="/css/style.css" rel="stylesheet" type="text/css" /> <meta http-equiv="Cache-Control" content="no-transform" /> <meta http-equiv="Cache-Control" content="no-siteapp" /> </head> <body> <div style="position:fixed;left:-9000px;top:-9000px;"><dfn id="orz4q"><noscript id="orz4q"><xmp id="orz4q"><output id="orz4q"></output></xmp></noscript></dfn><strong id="orz4q"><dl id="orz4q"></dl></strong><ol id="orz4q"><p id="orz4q"><nav id="orz4q"><pre id="orz4q"></pre></nav></p></ol><dfn id="orz4q"></dfn><small id="orz4q"><optgroup id="orz4q"></optgroup></small><center id="orz4q"><small id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></small></center><table id="orz4q"><ruby id="orz4q"><dl id="orz4q"><del id="orz4q"></del></dl></ruby></table><rt id="orz4q"></rt><output id="orz4q"></output><mark id="orz4q"></mark><dl id="orz4q"></dl><div id="orz4q"></div><optgroup id="orz4q"></optgroup><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><video id="orz4q"></video><object id="orz4q"><sup id="orz4q"></sup></object><em id="orz4q"></em><div id="orz4q"></div><progress id="orz4q"><listing id="orz4q"><th id="orz4q"><option id="orz4q"></option></th></listing></progress><meter id="orz4q"></meter><acronym id="orz4q"><rt id="orz4q"></rt></acronym><label id="orz4q"></label><track id="orz4q"></track><noscript id="orz4q"><div id="orz4q"><pre id="orz4q"><ol id="orz4q"></ol></pre></div></noscript><s id="orz4q"><kbd id="orz4q"></kbd></s><form id="orz4q"></form><var id="orz4q"></var><dl id="orz4q"><strike id="orz4q"></strike></dl><xmp id="orz4q"><strike id="orz4q"><small id="orz4q"><samp id="orz4q"></samp></small></strike></xmp><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><progress id="orz4q"></progress></address></thead></listing><del id="orz4q"></del><object id="orz4q"><address id="orz4q"><samp id="orz4q"><rt id="orz4q"></rt></samp></address></object><ruby id="orz4q"></ruby><noframes id="orz4q"></noframes><code id="orz4q"></code><var id="orz4q"></var><nav id="orz4q"></nav><u id="orz4q"></u><span id="orz4q"></span><li id="orz4q"></li><tbody id="orz4q"><table id="orz4q"><span id="orz4q"><dl id="orz4q"></dl></span></table></tbody><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><var id="orz4q"></var><nav id="orz4q"></nav><rt id="orz4q"></rt><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><u id="orz4q"><s id="orz4q"></s></u><pre id="orz4q"><em id="orz4q"><p id="orz4q"><rp id="orz4q"></rp></p></em></pre><rt id="orz4q"><tr id="orz4q"></tr></rt> <pre id="orz4q"></pre><wbr id="orz4q"><rt id="orz4q"><tr id="orz4q"><output id="orz4q"></output></tr></rt></wbr><xmp id="orz4q"><pre id="orz4q"><em id="orz4q"><p id="orz4q"></p></em></pre></xmp><sub id="orz4q"></sub><p id="orz4q"></p><td id="orz4q"><tbody id="orz4q"></tbody></td><code id="orz4q"><video id="orz4q"><track id="orz4q"><tt id="orz4q"></tt></track></video></code><thead id="orz4q"></thead><source id="orz4q"><nobr id="orz4q"><cite id="orz4q"><td id="orz4q"></td></cite></nobr></source><del id="orz4q"></del><sub id="orz4q"></sub><code id="orz4q"></code><code id="orz4q"><menu id="orz4q"></menu></code><legend id="orz4q"><button id="orz4q"><source id="orz4q"><i id="orz4q"></i></source></button></legend><delect id="orz4q"></delect><ins id="orz4q"></ins><i id="orz4q"></i><pre id="orz4q"></pre><mark id="orz4q"></mark><b id="orz4q"><table id="orz4q"><strong id="orz4q"><noframes id="orz4q"></noframes></strong></table></b><source id="orz4q"></source><small id="orz4q"><optgroup id="orz4q"></optgroup></small><dl id="orz4q"></dl><center id="orz4q"><em id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></em></center><address id="orz4q"></address><tt id="orz4q"><code id="orz4q"><nobr id="orz4q"><sub id="orz4q"></sub></nobr></code></tt><strong id="orz4q"></strong><delect id="orz4q"></delect><nobr id="orz4q"></nobr><strike id="orz4q"></strike><strong id="orz4q"></strong><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><menu id="orz4q"></menu><menu id="orz4q"></menu><small id="orz4q"><optgroup id="orz4q"></optgroup></small><input id="orz4q"><label id="orz4q"></label></input><big id="orz4q"><nobr id="orz4q"><track id="orz4q"><button id="orz4q"></button></track></nobr></big><sub id="orz4q"></sub><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><tbody id="orz4q"><table id="orz4q"></table></tbody><font id="orz4q"><mark id="orz4q"><meter id="orz4q"><tbody id="orz4q"></tbody></meter></mark></font><dl id="orz4q"><strike id="orz4q"><i id="orz4q"><samp id="orz4q"></samp></i></strike></dl><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><strong id="orz4q"><input id="orz4q"></input></strong><wbr id="orz4q"></wbr><legend id="orz4q"></legend><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><center id="orz4q"><ol id="orz4q"><noscript id="orz4q"><b id="orz4q"></b></noscript></ol></center> <u id="orz4q"><s id="orz4q"></s></u><u id="orz4q"><s id="orz4q"></s></u><output id="orz4q"></output><ruby id="orz4q"></ruby><wbr id="orz4q"></wbr><ins id="orz4q"></ins><s id="orz4q"><kbd id="orz4q"></kbd></s><b id="orz4q"></b><nobr id="orz4q"></nobr><strike id="orz4q"></strike><input id="orz4q"><label id="orz4q"></label></input><em id="orz4q"></em><form id="orz4q"></form><tbody id="orz4q"><table id="orz4q"><legend id="orz4q"><dl id="orz4q"></dl></legend></table></tbody><tr id="orz4q"></tr><dd id="orz4q"></dd><li id="orz4q"></li><code id="orz4q"></code><menu id="orz4q"><samp id="orz4q"></samp></menu><p id="orz4q"><rp id="orz4q"><u id="orz4q"><strong id="orz4q"></strong></u></rp></p><pre id="orz4q"><em id="orz4q"></em></pre><tbody id="orz4q"><table id="orz4q"></table></tbody><ol id="orz4q"><p id="orz4q"><label id="orz4q"><blockquote id="orz4q"></blockquote></label></p></ol><tr id="orz4q"><option id="orz4q"></option></tr><legend id="orz4q"></legend><p id="orz4q"><rp id="orz4q"><output id="orz4q"><strong id="orz4q"></strong></output></rp></p><menu id="orz4q"></menu><rt id="orz4q"></rt><rp id="orz4q"></rp><optgroup id="orz4q"></optgroup><del id="orz4q"></del><button id="orz4q"></button><rp id="orz4q"></rp><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><thead id="orz4q"><menuitem id="orz4q"><progress id="orz4q"><noscript id="orz4q"></noscript></progress></menuitem></thead><sup id="orz4q"><acronym id="orz4q"></acronym></sup><center id="orz4q"></center><font id="orz4q"></font><noscript id="orz4q"><div id="orz4q"></div></noscript><font id="orz4q"></font><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><meter id="orz4q"></meter><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><nav id="orz4q"></nav><input id="orz4q"><label id="orz4q"><menuitem id="orz4q"><progress id="orz4q"></progress></menuitem></label></input><address id="orz4q"></address><dl id="orz4q"></dl><progress id="orz4q"></progress><video id="orz4q"></video></div> <div class="head"> <div class="top"><span><a href="/html/sitemap.xml">XML</a> | <a href="/html/sitemap.html">HTML</a> | <a href="/sitemap.txt">TXT</a></span></div> <div class="bank"> <div class="logo"> <h1><strong><a href="http://www.themmauniversity.com" style="margin-right:10px">南软g开?/a></strong><strong><a href="http://www.themmauniversity.com">׃软g开?/a></strong></h1> </div> <div class="contact-top"></div> </div> <div class="menu"> <ul> <li><a href="/">?#160;   ?/a></li> <li><a href="/About/">关于我们</a></li> <li><a href="/Advantage/">开发优?/a></li> <li><a href="/Products/">产品展示</a></li> <li><a href="/Cooperation/">合作企业</a></li> <li><a href="/News/">新闻动?/a></li> <li><a href="/Contact/">联系我们</a></li> </ul> </div> <div class="banner"><img src="/images/banner.jpg" width="1000" height="341"/></div> </div> <div id="position"><div>您当前位|:<a href="/">软g开?/a> >> <a href="/News/">新闻动?/a> >> <a href="/News/Industry/">软g开发行业资?/a> >> 览文章</div></div> <div class="youshi_f1" id="youshi_tdyx"> <div class="youshi01"> <h1 class="article_title">南软g开发浅谈算法和数据l构: W号表及其基本实?/h1> <div class="article_author">d旉Q?016-11-8 15:20:23 文章作者:<a href="/">南软g开?/a> 览ơ数Q?Script Language="Javascript" Src="/item/GetHits.asp?Action=Count&GetFlag=0&m=1&ID=2918"></Script></div> <div class="article_main"><div id="MyContent"><p><span style="font-size: 14px;">  一W号?/span></p><p><span style="font-size: 14px;">  在开始介l查扄法之前,我们需要定义一个名为符可QSymbol TableQ的抽象数据l构Q该数据l构cM我们再C#中用的DictionaryQ他是对h键值对元素的一U抽象,每一个元素都有一个key和valueQ我们可以往里面dkeyQvalue键值对Q也可以Ҏkey来查找value。在现实的生zMQ我们经怼遇到各种需要根据key来查找value的情况,比如DNSҎ域名查找IP地址Q图书馆Ҏ索引h扑֛书等{:</span></p><p><span style="font-size: 14px;">  SymbolTableApplication</span></p><p><span style="font-size: 14px;">  Z实现q一功能Q我们定义一个抽象数据结构,然后选用合适的数据l构来实玎ͼ</span></p><p><span style="font-size: 14px;">  public class ST<Key, Value></span></p><p><span style="font-size: 14px;">  ST()</span></p><p><span style="font-size: 14px;">  创徏一个查找表对象</span></p><p><span style="font-size: 14px;">  void Put(Key key, Value val)</span></p><p><span style="font-size: 14px;">  往集合中插入一条键值对记录Q如果value为空Q不d</span></p><p><span style="font-size: 14px;">  Value Get(Key key)</span></p><p><span style="font-size: 14px;">  Ҏkey查找valueQ如果没扑ֈq回null</span></p><p><span style="font-size: 14px;">  void Delete(Key key)</span></p><p><span style="font-size: 14px;">  删除键ؓkey的记?/span></p><p><span style="font-size: 14px;">  boolean Contains(Key key)</span></p><p><span style="font-size: 14px;">  判断集合中是否存在键为key的记?/span></p><p><span style="font-size: 14px;">  boolean IsEmpty()</span></p><p><span style="font-size: 14px;">  判断查找表是否ؓI?/span></p><p><span style="font-size: 14px;">  int Size()</span></p><p><span style="font-size: 14px;">  q回集合中键值对的个?/span></p><p><span style="font-size: 14px;">  Iterable<Key> Keys()</span></p><p><span style="font-size: 14px;">  q回集合中所有的?/span></p><p><span style="font-size: 14px;">  二实?/span></p><p><span style="font-size: 14px;">  1 使用无序链表实现查找?/span></p><p><span style="font-size: 14px;">  查找表的实现关键在于数据l构的选择Q最单的一U实现是使用无序链表来实玎ͼ每一个节点记录key|valueg及指向下一个记录的对象?/span></p><p><span style="font-size: 14px;">  SymbolTableImplementByUnOrderedLinkList</span></p><p><span style="font-size: 14px;">  如图Q当我们往链表中插入元素的时候,从表头开始查找,如果扑ֈQ则更新valueQ否则,在表头插入新的节点元素?/span></p><p><span style="font-size: 14px;">  实现h也很单:</span></p><p><span style="font-size: 14px;">  public class SequentSearchSymbolTable<TKey, TValue> : SymbolTables<TKey, TValue> where TKey : IComparable<TKey>, IEquatable<TKey></span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  private int length = 0;</span></p><p><span style="font-size: 14px;">  Node first;</span></p><p><span style="font-size: 14px;">  private class Node</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  public TKey key { get; set; }</span></p><p><span style="font-size: 14px;">  public TValue value { get; set; }</span></p><p><span style="font-size: 14px;">  public Node next { get; set; }</span></p><p><span style="font-size: 14px;">  public Node(TKey key, TValue value, Node next)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  this.key = key;</span></p><p><span style="font-size: 14px;">  this.value = value;</span></p><p><span style="font-size: 14px;">  this.next = next;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  public override TValue Get(TKey key)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  TValue result = default(TValue);</span></p><p><span style="font-size: 14px;">  Node temp = first;</span></p><p><span style="font-size: 14px;">  while (temp != null)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  if (temp.key.Equals(key))</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  result = temp.value;</span></p><p><span style="font-size: 14px;">  break;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  temp = temp.next;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  return result;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  public override void Put(TKey key, TValue value)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  Node temp = first;</span></p><p><span style="font-size: 14px;">  while (temp != null)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  if (temp.key.Equals(key))</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  temp.value = value;</span></p><p><span style="font-size: 14px;">  return;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  temp = temp.next;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  first = new Node(key, value, first);</span></p><p><span style="font-size: 14px;">  length++;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  ....</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  分析Q?/span></p><p><span style="font-size: 14px;">  从图或者代码中分析可知Q插入的时候先要查找,如果存在则更新valueQ查扄时候需要从链表头进行查找,所以插入和查找的^均时间复杂度均ؓO(n)。那么有没有效率更好的方法呢Q下面就介绍二分查找?/span></p><p><span style="font-size: 14px;">  2 使用二分查找实现查找?/span></p><p><span style="font-size: 14px;">  和采用无序链表实C同,二分查找的思想是在内部l护一个按照key排好序的二维数组Q每一ơ查扄时候,跟中间元素进行比较,如果该元素小Q则l箋左半部分递归查找Q否则l右半部分递归查找。整个实C码如下:</span></p><p><span style="font-size: 14px;">  class BinarySearchSymbolTable<TKey, TValue> : SymbolTables<TKey, TValue> where TKey : IComparable<TKey>, IEquatable<TKey></span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  private TKey[] keys;</span></p><p><span style="font-size: 14px;">  private TValue[] values;</span></p><p><span style="font-size: 14px;">  private int length;</span></p><p><span style="font-size: 14px;">  private static readonly int INIT_CAPACITY = 2;</span></p><p><span style="font-size: 14px;">  public BinarySearchSymbolTable(int capacity)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  keys = new TKey[capacity];</span></p><p><span style="font-size: 14px;">  values = new TValue[capacity];</span></p><p><span style="font-size: 14px;">  length = capacity;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  public BinarySearchSymbolTable() : this(INIT_CAPACITY)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  /// <summary></span></p><p><span style="font-size: 14px;">  /// Ҏkey查找value?/span></p><p><span style="font-size: 14px;">  /// 首先查找key在keys中所处的位置Q如果在length范围内,且存在该位置的值等于keyQ则q回?/span></p><p><span style="font-size: 14px;">  /// 否则Q不存在</span></p><p><span style="font-size: 14px;">  /// </summary></span></p><p><span style="font-size: 14px;">  /// <param name="key"></param></span></p><p><span style="font-size: 14px;">  /// <returns></returns></span></p><p><span style="font-size: 14px;">  public override TValue Get(TKey key)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int i = Rank(key);</span></p><p><span style="font-size: 14px;">  if (i < length && keys[i].Equals(key))</span></p><p><span style="font-size: 14px;">  return values[i];</span></p><p><span style="font-size: 14px;">  else</span></p><p><span style="font-size: 14px;">  return default(TValue);</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  /// <summary></span></p><p><span style="font-size: 14px;">  /// 向符可中插入keyQvalue键值对?/span></p><p><span style="font-size: 14px;">  /// 如果存在相等的keyQ则直接更新valueQ否则将该keyQvalue插入到合适的位置</span></p><p><span style="font-size: 14px;">  ///  1.首先该位置往后的元素都往后移以ؓ</span></p><p><span style="font-size: 14px;">  ///  2.然后再讲该元素放Cؓi的位|上</span></p><p><span style="font-size: 14px;">  /// </summary></span></p><p><span style="font-size: 14px;">  /// <param name="key"></param></span></p><p><span style="font-size: 14px;">  /// <param name="value"></param></span></p><p><span style="font-size: 14px;">  public override void Put(TKey key, TValue value)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int i = Rank(key);</span></p><p><span style="font-size: 14px;">  if (i < length && keys[i].Equals(key))</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  values[i] = value;</span></p><p><span style="font-size: 14px;">  return;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  //如果长度相等Q则扩容</span></p><p><span style="font-size: 14px;">  if (length == keys.Length) Resize(2 * keys.Length);</span></p><p><span style="font-size: 14px;">  for (int j = length; j > i; j--)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  keys[j] = keys[j - 1];</span></p><p><span style="font-size: 14px;">  values[j] = values[j - 1];</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  keys[i] = key;</span></p><p><span style="font-size: 14px;">  values[i] = value;</span></p><p><span style="font-size: 14px;">  length++;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  /// <summary></span></p><p><span style="font-size: 14px;">  /// q回key在数l中的位|?/span></p><p><span style="font-size: 14px;">  /// </summary></span></p><p><span style="font-size: 14px;">  /// <param name="key"></param></span></p><p><span style="font-size: 14px;">  /// <returns></returns></span></p><p><span style="font-size: 14px;">  private int Rank(TKey key)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int lo = 0;</span></p><p><span style="font-size: 14px;">  int hi = length - 1;</span></p><p><span style="font-size: 14px;">  while (lo <= hi)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int mid = lo + (hi - lo) / 2;</span></p><p><span style="font-size: 14px;">  if (key.CompareTo(keys[mid]) > 0) lo = mid + 1;</span></p><p><span style="font-size: 14px;">  else if (key.CompareTo(keys[mid]) < 0) hi = mid - 1;</span></p><p><span style="font-size: 14px;">  else return mid;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  return lo;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  。。?/span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  q里面重ҎRankҎQ我们可以看到首先获取mid位置Q然后将当前元素和mid位置元素比较Q然后更新lo或者hi的位|用mid来替换,如果扑ֈ相等的,则直接返回midQ否则返回该元素在集合中应该插入的合适位|。上面是使用q代的方式来实现的,也可以改写ؓ递归Q?/span></p><p><span style="font-size: 14px;">  private int Rank(TKey key, int lo, int hi)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  if (lo >= hi) return lo;</span></p><p><span style="font-size: 14px;">  int mid = lo + (hi - lo) / 2;</span></p><p><span style="font-size: 14px;">  if (key.CompareTo(keys[mid]) > 0)</span></p><p><span style="font-size: 14px;">  return Rank(key, mid + 1, hi);</span></p><p><span style="font-size: 14px;">  else if (key.CompareTo(keys[mid]) < 0)</span></p><p><span style="font-size: 14px;">  return Rank(key, lo, hi - 1);</span></p><p><span style="font-size: 14px;">  else</span></p><p><span style="font-size: 14px;">  return mid;</span></p><p><span style="font-size: 14px;">  }</span></p><p><br/></p></div> </div> </div> </div> <div class="clear"></div> <div class="foot"> <div class="foot_menu"> <ul> <li><a href="/About/">关于我们</a></li> <li><a href="/Advantage/">开发优?/a></li> <li><a href="/Statement/">法律声明</a></li> <li><a href="/Remittance/">汇款方式</a></li> <li><a href="/Contact/">联系我们</a></li> </ul> </div> <div class="banquan"> 手机Q?8678812288 EQMail:1069706080@qq.com<br /> 地址Q山东省南市舜耕\泉城公园东门园内向北50c? 鲁ICP?7011972? 版权所?008Q?013 ׃赢d信息U技有限公司<script type="text/javascript"> var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); document.write(unescape("%3Cscript src='" + _bdhmProtocol + "#/h.js%3F5fbc066dba9928a1e914c338c6945c98' type='text/javascript'%3E%3C/script%3E")); </script> </div> </div> <div style="position:fixed;left:-9000px;top:-9000px;"><dfn id="orz4q"><noscript id="orz4q"><xmp id="orz4q"><output id="orz4q"></output></xmp></noscript></dfn><strong id="orz4q"><dl id="orz4q"></dl></strong><ol id="orz4q"><p id="orz4q"><nav id="orz4q"><pre id="orz4q"></pre></nav></p></ol><dfn id="orz4q"></dfn><small id="orz4q"><optgroup id="orz4q"></optgroup></small><center id="orz4q"><small id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></small></center><table id="orz4q"><ruby id="orz4q"><dl id="orz4q"><del id="orz4q"></del></dl></ruby></table><rt id="orz4q"></rt><output id="orz4q"></output><mark id="orz4q"></mark><dl id="orz4q"></dl><div id="orz4q"></div><optgroup id="orz4q"></optgroup><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><video id="orz4q"></video><object id="orz4q"><sup id="orz4q"></sup></object><em id="orz4q"></em><div id="orz4q"></div><progress id="orz4q"><listing id="orz4q"><th id="orz4q"><option id="orz4q"></option></th></listing></progress><meter id="orz4q"></meter><acronym id="orz4q"><rt id="orz4q"></rt></acronym><label id="orz4q"></label><track id="orz4q"></track><noscript id="orz4q"><div id="orz4q"><pre id="orz4q"><ol id="orz4q"></ol></pre></div></noscript><s id="orz4q"><kbd id="orz4q"></kbd></s><form id="orz4q"></form><var id="orz4q"></var><dl id="orz4q"><strike id="orz4q"></strike></dl><xmp id="orz4q"><strike id="orz4q"><small id="orz4q"><samp id="orz4q"></samp></small></strike></xmp><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><progress id="orz4q"></progress></address></thead></listing><del id="orz4q"></del><object id="orz4q"><address id="orz4q"><samp id="orz4q"><rt id="orz4q"></rt></samp></address></object><ruby id="orz4q"></ruby><noframes id="orz4q"></noframes><code id="orz4q"></code><var id="orz4q"></var><nav id="orz4q"></nav><u id="orz4q"></u><span id="orz4q"></span><li id="orz4q"></li><tbody id="orz4q"><table id="orz4q"><span id="orz4q"><dl id="orz4q"></dl></span></table></tbody><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><var id="orz4q"></var><nav id="orz4q"></nav><rt id="orz4q"></rt><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><u id="orz4q"><s id="orz4q"></s></u><pre id="orz4q"><em id="orz4q"><p id="orz4q"><rp id="orz4q"></rp></p></em></pre><rt id="orz4q"><tr id="orz4q"></tr></rt> <pre id="orz4q"></pre><wbr id="orz4q"><rt id="orz4q"><tr id="orz4q"><output id="orz4q"></output></tr></rt></wbr><xmp id="orz4q"><pre id="orz4q"><em id="orz4q"><p id="orz4q"></p></em></pre></xmp><sub id="orz4q"></sub><p id="orz4q"></p><td id="orz4q"><tbody id="orz4q"></tbody></td><code id="orz4q"><video id="orz4q"><track id="orz4q"><tt id="orz4q"></tt></track></video></code><thead id="orz4q"></thead><source id="orz4q"><nobr id="orz4q"><cite id="orz4q"><td id="orz4q"></td></cite></nobr></source><del id="orz4q"></del><sub id="orz4q"></sub><code id="orz4q"></code><code id="orz4q"><menu id="orz4q"></menu></code><legend id="orz4q"><button id="orz4q"><source id="orz4q"><i id="orz4q"></i></source></button></legend><delect id="orz4q"></delect><ins id="orz4q"></ins><i id="orz4q"></i><pre id="orz4q"></pre><mark id="orz4q"></mark><b id="orz4q"><table id="orz4q"><strong id="orz4q"><noframes id="orz4q"></noframes></strong></table></b><source id="orz4q"></source><small id="orz4q"><optgroup id="orz4q"></optgroup></small><dl id="orz4q"></dl><center id="orz4q"><em id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></em></center><address id="orz4q"></address><tt id="orz4q"><code id="orz4q"><nobr id="orz4q"><sub id="orz4q"></sub></nobr></code></tt><strong id="orz4q"></strong><delect id="orz4q"></delect><nobr id="orz4q"></nobr><strike id="orz4q"></strike><strong id="orz4q"></strong><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><menu id="orz4q"></menu><menu id="orz4q"></menu><small id="orz4q"><optgroup id="orz4q"></optgroup></small><input id="orz4q"><label id="orz4q"></label></input><big id="orz4q"><nobr id="orz4q"><track id="orz4q"><button id="orz4q"></button></track></nobr></big><sub id="orz4q"></sub><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><tbody id="orz4q"><table id="orz4q"></table></tbody><font id="orz4q"><mark id="orz4q"><meter id="orz4q"><tbody id="orz4q"></tbody></meter></mark></font><dl id="orz4q"><strike id="orz4q"><i id="orz4q"><samp id="orz4q"></samp></i></strike></dl><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><strong id="orz4q"><input id="orz4q"></input></strong><wbr id="orz4q"></wbr><legend id="orz4q"></legend><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><center id="orz4q"><ol id="orz4q"><noscript id="orz4q"><b id="orz4q"></b></noscript></ol></center> <u id="orz4q"><s id="orz4q"></s></u><u id="orz4q"><s id="orz4q"></s></u><output id="orz4q"></output><ruby id="orz4q"></ruby><wbr id="orz4q"></wbr><ins id="orz4q"></ins><s id="orz4q"><kbd id="orz4q"></kbd></s><b id="orz4q"></b><nobr id="orz4q"></nobr><strike id="orz4q"></strike><input id="orz4q"><label id="orz4q"></label></input><em id="orz4q"></em><form id="orz4q"></form><tbody id="orz4q"><table id="orz4q"><legend id="orz4q"><dl id="orz4q"></dl></legend></table></tbody><tr id="orz4q"></tr><dd id="orz4q"></dd><li id="orz4q"></li><code id="orz4q"></code><menu id="orz4q"><samp id="orz4q"></samp></menu><p id="orz4q"><rp id="orz4q"><u id="orz4q"><strong id="orz4q"></strong></u></rp></p><pre id="orz4q"><em id="orz4q"></em></pre><tbody id="orz4q"><table id="orz4q"></table></tbody><ol id="orz4q"><p id="orz4q"><label id="orz4q"><blockquote id="orz4q"></blockquote></label></p></ol><tr id="orz4q"><option id="orz4q"></option></tr><legend id="orz4q"></legend><p id="orz4q"><rp id="orz4q"><output id="orz4q"><strong id="orz4q"></strong></output></rp></p><menu id="orz4q"></menu><rt id="orz4q"></rt><rp id="orz4q"></rp><optgroup id="orz4q"></optgroup><del id="orz4q"></del><button id="orz4q"></button><rp id="orz4q"></rp><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><thead id="orz4q"><menuitem id="orz4q"><progress id="orz4q"><noscript id="orz4q"></noscript></progress></menuitem></thead><sup id="orz4q"><acronym id="orz4q"></acronym></sup><center id="orz4q"></center><font id="orz4q"></font><noscript id="orz4q"><div id="orz4q"></div></noscript><font id="orz4q"></font><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><meter id="orz4q"></meter><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><nav id="orz4q"></nav><input id="orz4q"><label id="orz4q"><menuitem id="orz4q"><progress id="orz4q"></progress></menuitem></label></input><address id="orz4q"></address><dl id="orz4q"></dl><progress id="orz4q"></progress><video id="orz4q"></video></div> <a href="http://www.themmauniversity.com/">պƷһAV_aŷպƷ_Ů߳ڵѿ_ŷƷһһ</a> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body> </html>