数据结构上机实验之二分查找

简介: 数据结构上机实验之二分查找

数据结构上机实验之二分查找

Time Limit: 1000 ms Memory Limit: 65536 KiB

SubmitStatisticDiscuss

Problem Description

在一个递增的序列里,查找元素是否存在,若存在输出YES,不存在输出NO.

Input

本题多组数据,首先输入一个数字n(n>=100000),然后输入n个数,数据保证数列递增,然后再输入一个查找数字。

Output

若存在输出YES,不存在输出NO.

Sample Input

4

1 3 5 8

3

Sample Output

YES

Hint

 

Source

cz

#include <stdio.h>
#include <stdlib.h>
int a[100101];
int find(int a[], int l, int r, int key)
{
    int mid;
    int i, j;
    i = l, j = r, mid = (i+j) / 2;
    while(i <= j)
    {
        if(a[mid] == key)
        {
            return mid;
        }
        else if(a[mid] < key)
        {
            return find(a,mid+1,j,key);
        }
        else
        {
            return find(a,i,mid-1,key);
        }
    }
    return -1;
}
int main()
{
    int n, m, i, num, key;
    while(scanf("%d", &n) != EOF)
    {
        for(i = 0; i< n; i++)
        {
            scanf("%d", &a[i]);
        }
        scanf("%d", &key);
        num = find(a,0,n-1,key);
        if(num == -1)
        {
            printf("NO\n");
        }
        else
        {
            printf("YES\n");
        }
    }
    return 0;
}


相关文章
|
6月前
|
机器学习/深度学习 算法 搜索推荐
数据结构实验之排序六:希尔排序
数据结构实验之排序六:希尔排序
|
5月前
|
存储 算法 数据安全/隐私保护
【Python学习篇】Python实验小练习——高级数据结构(五)
【Python学习篇】Python实验小练习——高级数据结构(五)
65 1
|
5月前
|
存储 算法 数据挖掘
数据结构实验||约瑟夫环
数据结构实验||约瑟夫环
|
28天前
|
算法 Java 索引
数据结构与算法学习十五:常用查找算法介绍,线性排序、二分查找(折半查找)算法、差值查找算法、斐波那契(黄金分割法)查找算法
四种常用的查找算法:顺序查找、二分查找(折半查找)、插值查找和斐波那契查找,并提供了Java语言的实现代码和测试结果。
17 0
|
1月前
|
算法
计科一二班算法数据结构实验9答案
计科一二班算法数据结构实验9答案
13 0
|
5月前
|
机器学习/深度学习 算法 索引
数据结构算法--1 顺序查找二分查找
**顺序查找时间复杂度为O(n)**,适合无序列表,可以通过`enumerate`或直接遍历索引来实现。**二分查找时间复杂度为O(logn)**,适用于有序列表,利用Python中`left`、`right`指针和`mid`点不断缩小搜索范围。效率上二分查找更优。
|
5月前
|
算法
数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)
数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)
410 1
|
6月前
|
算法 索引
【数据结构与算法 | 基础篇】力扣704/35/34:二分查找
【数据结构与算法 | 基础篇】力扣704/35/34:二分查找
|
6月前
|
存储 算法
数据结构实验(四)二叉树的基本操作
数据结构实验(四)二叉树的基本操作
|
6月前
|
存储 算法
数据结构实验(三)
数据结构实验(三)