二分查找: 递归(分左右, 传递start,end参数)和非递归(使用while(l < h)),冒泡排序: 两个for循环。
1条回答 默认 最新
关注 #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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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,消息推送配置