第 30 题
#include <bits/stdc++.h>
using namespace std;
int select_arr(int arr[],int len, int arr_value)
{
while (1)
{
int left=0;//数组的左侧下标
int right=len-1;//数组的右侧下标
while (left<=right)
{
int mid=(left+right)/2; //定义 中间位的下标
int mid_value=arr[mid]; //定义中间值的基准值
if (mid_value==arr_value) //如果基准值正好等于要查找的1
{
return mid;
}
else if (mid_value>arr_value)
{
right=mid-1;
}
else if (mid_value<arr_value)
{
left=mid+1;
}
}
return -1;
}
}
int main ()
{
int arr[10]= { 1,3,5,7,9,10,16,46,88,91 };
int weizhi =select_arr(arr,10,16);
cout<<weizhi;
return 0;
}
判断题
第 30 题 数组arr[ ]的值可以为负数。( )
第 31 题 若第31行代码为int arr[10]={ 1,3, 7, 5, 9, 10, 16, 46, 88, 91},输出结果是一样的。( )
第 32 题 数组数值越大,排序效率越低。( )
第 33 题 当数组数据量越大时,和顺序查找相比优势越明显。( )
第 34 题 (4分)程序输出结果为( )。
第 35 题 (4分)该程序的算法为( )。