二分查找
二分查找实现
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int arr[100] = { 0 };
for (int i = 0; i < 100; i++)
{
arr[i] = i;
printf("%-4d", arr[i]);
if ((i + 1) % 10 == 0)
{
printf("\n");
}
}
printf("======================================\n");
while (1)
{
int num;
scanf("%d", &num);
int header = 0;
int footer = 99;
int count = 0;
int flag = 0;
while (header <= footer)
{
int mid = (header + footer) / 2;
int tmpData = arr[mid];
if (tmpData == num)
{
flag = 1;
printf("查找%d次,在数组中找到%d 索引下标为%d\n", count, tmpData, mid);
break;
}
else if (tmpData > num)
{
footer = mid - 1;
}
else
{
header = mid + 1;
}
count++;
}
if (!flag)
{
printf("查找%d次,没有找到该数据%d\n", count, num);
}
}
system("pause");
return 0;
}
效果图

秋风
2016-07-17