C语言数据结构二分查找的递归实现

/** 对比利用循环实现的时间复杂度递归实现的时间复杂度为1*

/*
*二分查找算法(对已经排好序的数据而言)递归实现
*/
#include
#include
int Binary_search_recursive(int *s,int length,int key,int L,int H);//二分查找的递归实现函数
void sort(int *s,int length);//对数组进行排序函数
void main()
{
    int m;
    int i;
    int key;
    int n[100];//待排序数组
    printf("请输入数据的个数:\n");
     scanf("%d",&m);
      printf("请依次输入数据:\n");
         for(i=0;i位置 %d",key,pos1);
                }
         }

}
void sort(int *s,int length)//对数组进行排序函数
{
    //改进版的冒泡排序算法 递增排序
      int i=length-1;//比较的次数
      int j;
      int  t;
      int flag;
      while(flag)
      {
          flag=0;
          for(j=0;js[j+1])
              {
                  t=s[j];
                  s[j]=s[j+1];
                  s[j+1]=t;//交换数据
                  flag=1;
            }
              i--;
          }
      }
}
int Binary_search_recursive(int *s,int length,int key,int L,int H)//二分查找的递归实现函数
{
    int  M=(L+H)/2;
    if(L>H)
        return -1;
    if(keys[M])
    {
        return (Binary_search_recursive(s,length,key,M+1,H));
    }
    else
        return (M);
}

C语言数据结构二分查找的递归实现_第1张图片

你可能感兴趣的:(数据结构,c语言,C语言数据结构)