数据结构上机实验之二分查找
生活随笔
收集整理的這篇文章主要介紹了
数据结构上机实验之二分查找
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目描述
在一個遞增的序列里,查找元素是否存在,若存在輸出YES,不存在輸出NO.輸入
本題多組數(shù)據(jù),首先輸入一個數(shù)字n(n>=100000),然后輸入n個數(shù),數(shù)據(jù)保證數(shù)列遞增,然后再輸入一個查找數(shù)字。輸出
若存在輸出YES,不存在輸出NO.示例輸入
4 1 3 5 8 3示例輸出
YES提示
#include <stdio.h>
#include <stdlib.h>
int a[100000];
void Search(int l,int r,int key)//二分查找函數(shù);
{
? ? while(l<=r)
? ? {
? ? ? ? int m=(l+r)/2;
? ? ? ? if(a[m]==key)
? ? ? ? ? {
? ? ? ? ? ? ? printf("YES\n");
? ? ? ? ? ? ? return;
? ? ? ? ? }
? ? ? ? else if(a[m]>key)
? ? ? ? ? ? r=m-1;
? ? ? ? else
? ? ? ? ? ? l=m+1;
? ? }
? ? if(r<l)
? ? ? ? printf("NO\n");
}
int main()
{
? int n,i,key;
while(~scanf("%d",&n))
{
? for(i=0;i<n;i++)
? ? scanf("%d",&a[i]);
? ? ?scanf("%d",&key);
? ? ?Search(0,n-1,key);
}
? ? return 0;
}
總結(jié)
以上是生活随笔為你收集整理的数据结构上机实验之二分查找的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用软件包和环境配置(机器学习)
- 下一篇: 怎样查找自增列主键的id