二分查找法怎么写呀,在数组中找到指定的元素??? 救救孩子吧,刚学c语言
6条回答 默认 最新
technologist_30 2021-05-27 18:22关注#include<iostream> #include<assert.h> using namespace std; int Search(int ar[], int n, int key) { int low = 0;//低位值 int high = n-1;//高位值是元素个数-1 int mid; while(low <= high) { mid = (low+high)/2; if(key < ar[mid]) { high = mid-1;//二分 } else if(key > ar[mid]) { low = mid+1;//二分 } else return mid;//找到值 } return -1;//查找数据不存在 } void main() { int ar[10] = {12,23,34,45,56,67,78,89,90,100};//这种算法只能在数组有序的情况使用,如果无序,先进行排序 int n = sizeof(ar)/sizeof(int); int key; cout<<"请输入要查找的key值:>"; cin>>key; cout<<"pos :> "<<Search(ar,n,key)<<endl; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 2