欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

方法2:二分查找法

程序员文章站 2022-06-02 12:08:36
...

思路

方法2:二分查找法

#include <iostream>
using namespace std;
#define MAXSIZE 7
typedef struct
{
	int Element[MAXSIZE];
	int Lenth;
}LNode,*List;
int BinarySearch(List list,int k);
int main()
{
	LNode list;
	list.Element[1]=1;
	list.Element[2]=2;
	list.Element[3]=3;
	list.Element[4]=4;
	list.Element[5]=5;
	list.Element[6]=6;
	list.Lenth=MAXSIZE;
	List pt=&list;
	while(1)
	{
		cout<<"输入你想查找的元素"<<endl;
		int k;cin>>k;
		cout<<"你查找的元素位置在"<<BinarySearch(pt,k)<<endl;
	}
	return 0;
}
int BinarySearch(List list,int k)
{
	int left=1;int right=list->Lenth-1;int mid;
	while(left<=right)
	{
		mid=(left+right)/2;
		if(k>list->Element[mid])
		{
			left=mid+1;
		}
		else if(k<list->Element[mid])
		{
			right=mid-1;
		}
		else if(k=list->Element[mid])
		{	
			return mid;
		}
	}
	return 0;
}

结果

方法2:二分查找法
时间复杂度为log2(n)

相关标签: 二分查找