用二分法查找数组a[10] = {2,3,6,1,9,8,7,4,0,5}中元素9
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/19 23:48:43
用二分法查找数组a[10] = {2,3,6,1,9,8,7,4,0,5}中元素9
int Lookup(int find,int array[],int low,int high)
{
if (low > high)
return -1;//表示未找到元素
int mid = (low + high)/2
if (array[mid] == find)
return mid;//找到元素,元素的位置为mid
if (array[mid] > find)//如果大于要找的值则在下半区间继续找
return Lookup(find,array,low,mid - 1);
else //如果小于要找的值则在上半区间继续找
return Lookup(find,array,mid + 1,high);
}
void main()
{
//序列应该基本有序才能使用二分法
int a[10] = {0,1,2,3,4,5,6,7,8,9};
//序列对应的位置值
int position[10] = {8,3,0,1,7,9,2,6,5,4};
int pos = Lookup(9, a, 0, 9);
if (pos == -1)
{
printf("There is not 9 in the array");
return;
}
//输出映射的位置
printf("The position of 9 in the array is %d",position[pos]);
}
{
if (low > high)
return -1;//表示未找到元素
int mid = (low + high)/2
if (array[mid] == find)
return mid;//找到元素,元素的位置为mid
if (array[mid] > find)//如果大于要找的值则在下半区间继续找
return Lookup(find,array,low,mid - 1);
else //如果小于要找的值则在上半区间继续找
return Lookup(find,array,mid + 1,high);
}
void main()
{
//序列应该基本有序才能使用二分法
int a[10] = {0,1,2,3,4,5,6,7,8,9};
//序列对应的位置值
int position[10] = {8,3,0,1,7,9,2,6,5,4};
int pos = Lookup(9, a, 0, 9);
if (pos == -1)
{
printf("There is not 9 in the array");
return;
}
//输出映射的位置
printf("The position of 9 in the array is %d",position[pos]);
}
C++中,定义一个整型数组a[10]={1,2,3,4,5,6,7,8,9,10},编写一个函数实现将a数组各个数组元素
二分法查找的一些问题0 1 2 3 4 5 6 7 8 9 10o=0 h=11m=(o+h)/2a[m] 是取哪个下标
定义一个整型数组,int a[]=(1,2,3,4,5,6,7,8,9,10)利用指针输出全部数组元素
int a[ ]={1,2,3,4,5,6,7,8,9,10};则a[a[8]-a[2]*a[1]]引用的数组元素是
二分法查找 C++假设一维数组a[10]中的10个元素是按从小到大的顺序有序排列的,编写程序从a中二分查找出其值等于给定
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是(B)
matlab中怎么对数组列元素求和.例如,D=[1 2 3;4 5 6;7 8 9;] 求每一列元素的和.
.int a[]={1,2,3,4,5,6,7,8,9,10},*p=a.i; 则下列能够正确表示数组元素地址的是( )
vb数组问题已知数组A=array(7,6,5,1,8,5,3,9,4)编写一程序,删除数组中值为X(例如为3)的元素,
有一数组b中,包含有10个元素:1,2,3,4,5,6,7,8,9,10,要求分别用:
在数组中查找指定元素.输入一个正整数n(1≤n ≤10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找
用二分法查找{2,3,4,5,7,9,11,24,35,47,56,68,88}中的4,9 ,56比较次数分别是几次,