问题1:在一个有序数组查找具体某个数字n思路1:计算出数组的总个数,再根据输入数字的编号查找 代码输入:
#include "stdio.h"
int main(){
int arr[]={1,2,3,4,5,6,7,8,9,10};
int k,i;
//写一个代码,在arr数组中找到k
scanf("%d",&k);
int sz=sizeof (arr)/sizeof (arr[0]);
//计算出数组的总个数
for (i = 0; i
思路2:利用二分法查找数组
代码输入:
#include"stdio.h"
int main(){
int arr[]={1,2,3,4,5,6,7,8,9,10};
int x;
scanf("%d",&x);
int sz= sizeof(arr)/sizeof(arr[0]); //计算元素个数
int left=0; //左下标
int right=sz-1; //右下标
while(left<=right)
{
int mid=(left+right)/2;
if (arr[mid] > x)
{
right = mid - 1;
}
else if (arr[mid] < x)
{
left = mid + 1;
}
else
{
printf("找到了,下标是%d\n", mid);
break;
}
}
if(left>right)
{
printf("找不到\n");
}
return 0;
}
问题2:在一个无序数组查找具体某个数字n思路:简单来说就是在数组中一个一个地查找 代码输入:
#include
int main() //简单来说就是一个一个的找
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int x;
int i;
int sz = sizeof(arr)/sizeof(arr[0]); //计算数组中的个数
scanf("%d",&x);
for ( i = 0; i < sz; i++)
{
if(x==arr[i])
{
printf("找到了,下标为:%d\n",i);
break;
}
}
if (i == sz)
{
printf("找不到\n");
}
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)