c语言数据结构分析7之 二分查找

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

struct test{

	char* name;

	int age;

	int qq;

} date[]={

	{

		"solq",18,33333

	},

	{

		"wei cheng",20,444444	

	},

	{

		"hong",55,5555555

	}

};

int sreach(struct test* ar,char* name);

int main(int argc, char* argv[])

{



	int index=sreach(date,"solq");

	if(index<0) return 0;

	printf("name:%s\n",date[index].name);

	printf("age:%d\n",date[index].age);

	printf("qq:%d\n",date[index].qq);

	return 0;

}

int sreach(struct test* ar,char* name)

{

	int l,r,m,n=3;

	l=0;

	r=n-1;

	

	while(l<=r)

	{		

		m=(l+r)/2;

		if(strcmp(ar[m].name,name)==0)

			return m;

		else if (strcmp(ar[m].name,name)<0)		

			l=m+1;

		else		

			r=m-1;		

	}

	return -1;

}

  

你可能感兴趣的:(数据结构)