二分法查找数据

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <time.h>

void main()
{
	int a[1024];

	for (int i = 0; i < 1024; i++)
	{
		a[i] = i;
	}

	int num = 333;
	int shang = 0;
	int xia = 1024;
	int zhong;

	while (shang < xia)
	{
		zhong = (shang + xia) / 2;  //取中间值
		printf("\n shang = %d, xia = %d, zhong = %d\n", shang, xia, zhong);
		if (num == a[zhong])
		{
			printf("找到");
			break;
		}

		else if (num > a[zhong])
		{
			shang = zhong + 1;
		}

		else
		{
			xia = zhong - 1;
		}

	}

	
	system("pause");
}


你可能感兴趣的:(二分法查找数据)