do while循环语句

循环语句语法

do
{
语句;
}while(条件);

do while循环先执行语句在进行判断(至少执行一次语句),而while语句是先判断在执行语句。

二分查找算法(拆半查找算法):

二分査找也称折半査找,​其优点是查找速度快,缺点是要求所要査找的数据必须是有序序列​。该算法的基本思想是将所要査找的序列的中间位置的数据与所要査找的元素进行比较,如果相等,则表示査找成功,否则将以该位置为基准将所要査找的序列分为左右两部分。接下来根据所要査找序列的升降序规律及中间元素与所查找元素的大小关系,来选择所要査找元素可能存在的那部分序列,对其采用同样的方法进行査找,直至能够确定所要查找的元素是否存在。-----来源于网络

下面通过代码的方式演示二分查找算法。

例:在数组中找到7

#include <stdio.h>
#include <string.h>

int main()
{
//在数组中找到7
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int k = 7;//要查找的值
int sz = sizeof(arr) / sizeof(arr[0]);//计算元素个数
int left = 0,right=sz-1,mid=0;//left左元素的下标,right右元素的下标,mid中间元素的小标
while (left < right)//当左边元素比右边元素小标大时即找不到这个数;
{
mid = (left + right)/2;//计算中间元素的下标
if (k <arr[mid])
{
right = mid-1;
}
if (k > arr[mid])
{
left = mid+1;
}
if (k == arr[mid])
{
printf("找到了下标是:%d", mid);
break;
}
}
if (k != arr[mid])
{
printf("找不到!!!");
}
return 0;
}