#include <stdio.h>
int main()
{
/*在一组有序的数列中,寻找一个指定的数字所在的下标*/
int d[] = {1,5,8,12,23,44,56,78,99,200};
int find=12;
//有序查找(效率低)
for (int i = 0; i < sizeof(d) / sizeof(int); i++)
{
if (d[i] == find)
{
printf("%d\n", i);
break;
}
}
//折半查找
{
int i=0, j= (sizeof(d) / sizeof(int))-1;//握住两端
int mid;
do
{
mid = (i + j) / 2;
if (find == d[mid])
break;
else if(find>d[mid])
{
i = mid + 1;
}
else
{
j = mid - 1;
}
} while (i <= j);
if (i > j)//if(!(i<=j))
{
printf("no finding");
}
else
{
printf("%d",mid);
}
}
return 0;
}
在一组有序的数列中,寻找一个指定的数字所在的下标
最新推荐文章于 2023-05-30 16:26:14 发布