Bol5261 2021-09-28 14:05 采纳率: 97.4%
浏览 17
已结题

二分查找和冒泡排序?

二分查找: 递归(分左右, 传递start,end参数)和非递归(使用while(l < h)),冒泡排序: 两个for循环。

  • 写回答

1条回答 默认 最新

  • yangbocsu Java领域新星创作者 2021-09-28 14:11
    关注
    
    #include<iostream>
    int getIndex(int *a,int n,int data)//查找值为data的元素在数组中的下标位置,采用二分查找非递归的形式;
    {
     if (a==NULL||n<=0)
     {
      return -1;
     }
     int start=0;
     int end=n-1;
     while (start<end)
     {
      int mid=start+(end-start)/2;
      if (data==a[mid])
      {
               return mid;
      }
      else if (data>a[mid])
      {
       mid=mid+1;
      }
      else
       mid=mid-1;
     }
     return -1; 
    
    }
    int getIndexDigui(int *a,int data,int start,int end)//递归
    {
         int mid=start+(end-start)/2;
            if (start>end)
            {
                return -1;
            }
          if (data==a[mid])
          {
           return mid;
          }
          else if (data>a[mid])
          {
           return getIndexDigui(a,data,mid+1,end);
          }
          else
           return getIndexDigui(a,data,0,mid-1);
       
    }
    int getIndexOwn(int *a,int n,int data)
    {
         if (a==NULL||n<=0)
         {
          return -1;
         }
         else
          return getIndexDigui(a,data,0,n-1);
    }
    int main(int argc, char* argv[])
    {
         int a[]={2,4,5,7,8,9};
         int length=sizeof(a)/sizeof(int);
         int index=getIndex(a,length,5);
         cout<<"查找的元素下标为:"<<index<<endl;
         int index2=getIndexOwn(a,length,7);
         cout<<"采用递归调用的形式的下标为:"<<index2<<endl;
         return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月6日
  • 已采纳回答 9月28日
  • 创建了问题 9月28日

悬赏问题

  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 angular开发过程中,想要读取模型文件,即图1的335行,会报404错误(如图2)。但我的springboot里配置了静态资源文件,如图3。且在该地址下我有模型文件如图4,请问该问题该如何解决呢?
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 vite打包后,页面出现h.createElement is not a function,但本地运行正常
  • ¥15 Java,消息推送配置