zoukankan      html  css  js  c++  java
  • 数据结构之搜索算法一:二分查找

      前面回顾了几个主要的排序算法,排完序就该搜索了,主要的查找类型分为静态查找表和动态查找表两大类,先看看静态查找表常用算法,二分搜索。

    二分搜索原理如下:

      二分查找又称折半查找,它是一种效率较高的查找方法。
      【二分查找要求】:
         * 1.必须采用顺序存储结构
         * 2.必须按关键字大小有序排列。
         *
      【优缺点】折半查找法的优点是比较次数少,查找速度快,平均性能好;
         * 其缺点是要求待查表为有序表,且插入删除困难。
         * 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
         *
      【算法思想】首先,将表中间位置记录的关键字与查找关键字比较,
         * 如果两者相等,则查找成功;
         * 否则利用中间位置记录将表分成前、后两个子表,
         * 如果中间位置记录的关键字大于查找关键字,
         * 则进一步查找前一子表,否则进一步查找后一子表。
      重复以上过程,直到找到满足条件的记录,使查找成功,
         * 或直到子表不存在为止,此时查找不成功。

    代码
    public int Search(int[] seqList, int key)
            {
                
    int flag = -1;
                
    int mid;
                
    int low = 0;
                
    int high = seqList.Length - 1;            
                
    while (low < high)
                {
                    mid 
    = (high + low) / 2;
                    
    if (seqList[mid] == key)
                    {
                        flag 
    = mid;
                        
    break;
                    }
                    
    if (mid==low||mid==high)
                    {
                        
    break;
                    }                              
                    
    if (seqList[mid] > key)
                    {
                        high 
    = mid;                                        
                    }
                    
    if (seqList[mid] < key)
                    {
                        low 
    = mid;
                    }
                }
                
    return flag;
            }
  • 相关阅读:
    How to change hostname on SLE
    How to install starDIct on suse OS?
    python logging usage
    How to reset password for unknow root
    How to use wget ?
    How to only capute sub-matched character by grep
    How to inspect who is caller of func and who is the class of instance
    How to use groovy script on jenkins
    Vim ide for shell development
    linux高性能服务器编程 (二) --IP协议详解
  • 原文地址:https://www.cnblogs.com/millen/p/1682718.html
Copyright © 2011-2022 走看看