基本的查找算法

Posted lyjbk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本的查找算法相关的知识,希望对你有一定的参考价值。

基本的查找算法有:顺序查找,二分查找,

顺序查找很简答,就是遍历数组的每一个元素,通过与待查找到数进行比较来实现,一个for循环即可搞定。

顺序查找不需要对数组进行排序,缺点是执行效率低,耗时,因为要遍历。

二分查找是一个提高查找效率的方法,前提是数组有序,如果拿到一个无需的数组,首先要用排序算法(冒泡、选择、插入)来排序。

二分查找的利用的是二分法,即将数组有一分为二,一半一半的缩小对比范围。

二分法代码实现:

class Test

   public static void Main()
   
       int[] number=new int[]11,22,33,44,55,66,77,88,99;
       int  sValue=33;
       int index;
       index=Dichotomy(number,sValue);
       Console.WriteLine("0",  index);
    

   public static int  Dichotomy(int[] num,int sValue)
    
        int upper=num.Length()-1;
         int lower=0;
       int mid= (upper+lower)/2;
       while( lower<=upper)
      
            if(num[mid]==sValue)
            
                 return  mid;  //存在返回下标
            
              if(num[mid]>sValue)
             
                upper=mid-1;
            
               if(num[mid]<sValue)
          
                 lower=mid+1;
          
        return -1;//不存在返回-1
       

 public static int  Rdichotomy(int[] num,int sValue,int lower,int upper)//递归法实现
    
       
if(lower>upper)

return -1;
else

           if(num[mid]==sValue)
            
                 return  mid;  //存在返回下标
            
           else  if(num[mid]>sValue)
            
                int upper=num.Length()-1;
                int lower=0;
                int mid= (upper+lower)/2;
int[] num2=new int[]upper-mid+1;
for(int i=0;i<upper-mid+1;i++)
                       num2[i]=num[lower+1+i];
                dichotomy(int[] num2,int sValue,int lower+1,int upeer);
                )
              else  if(num[mid]<sValue)
             
                int upper=num.Length()-1;
                int lower=0;
                int mid= (upper+lower)/2;
int[] num2=new int[]upper-mid+1;
for(int i=0;i<upper-mid+1;i++)
                       num2[i]=num[i];
                  dichotomy(int[] num2,int sValue,int lower+1,int upeer);
                 


 

以上是关于基本的查找算法的主要内容,如果未能解决你的问题,请参考以下文章

每日算法— 二分查找

查找算法之折半查找+分块查找

数据结构与算法学习笔记 查找

数据结构与算法学习笔记 查找

七大查找算法的理解与实现

算法——二分查找