首页 > 其他分享 >KY199 查找C

KY199 查找C

时间:2024-01-13 16:11:45浏览次数:31  
标签:head return int KY199 while tail 查找 include

C写个快排就行了。

#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
int divide(int* A,int head, int tail){
    if(head==tail) return  head ;
    int x =A[head];
    while(head < tail){
        while(head < tail && A[tail] > x) tail--;
        if(head < tail) A[head++]=A[tail];
        while(head < tail && A[head] < x) head++;
        if(head < tail) A[tail--]=A[head];
    }
    A[head]=x;
    return head;
}

void quicksort(int* A, int head, int tail){
    if(head >= tail) return;
    int x= divide(A,head,tail);
    if(x>head) quicksort(A,head,x-1);
    if(x<tail) quicksort(A,x+1,tail);
}

bool judge(int* A , int n ,int x){
    int head =0;
    int tail=n-1;
    while(head<=tail){
        int mid = (head+tail)/2;
        if(A[mid]==x){
            return true;
        }else if(A[mid] < x){
            head=mid+1;
        }else{
            tail=mid-1;
        }
    }
    return false;
}

int main(){
    int n ;
    while(scanf("%d",&n) != EOF){
        int* A=(int*)malloc(sizeof(int )*n);
        for(int i = 0 ;i < n ;i++){
            scanf("%d",&A[i]);
        }
        quicksort(A,0,n-1);
        int m;
        scanf("%d",&m);
        for(int i =0;i<m;i++){
            int t;
            scanf("%d",&t);
            if(judge(A,n,t)){
                printf("YES\n");
            }else{
                printf("NO\n");
            }
        }
    }

    return 0;
}

结果如下:

标签:head,return,int,KY199,while,tail,查找,include
From: https://www.cnblogs.com/llllmz/p/17962463

相关文章

  • KY199 查找C++
      二分查找,没什么好说的。关键在于排成有序数组。然而C++调用sort就可以了。#include<iostream>#include<algorithm>#include<cstdlib>usingnamespacestd;booljudge(int*A,intn,intt){inthead=0;inttail=n-1;while(head<=tail){......
  • Python中查找字符串某个字符最常用的方法!
    在Python语言中,查找字符串中某个字符是非常普通且常见的操作之一,那么Python如何查找字符串中某个字符?可以使用的方法有很多种,以下是详细内容介绍。1、使用in关键字在Python中,可以使用in关键字来查找一个字符串是否包含某个字符,具体代码如下:```pythons="Hell......
  • 如何查找Linux死机的原因?
    Linux死机指操作系统在运行过程中突然停止响应的现象,对于使用Linux的用户来说,这无疑是一个令人头疼的问题。那么,我们应该如何快速查找并解决Linux死机的原因呢?一般来说,Linux死机的原因可以归结为硬件故障、软件冲突、系统漏洞等。那么,常见的解决方法都有哪些呢?检......
  • 【C++】STL 容器 - map 关联容器 ④ ( map 容器常用 api 操作 | 查找指定元素 | 获取
    文章目录一、查找指定元素-std::map#find()函数1、函数原型简介2、代码示例二、获取元素个数-std::map#count()函数1、函数原型简介2、代码示例三、获取大于等于指定键的元素-std::map#lower_bound函数1、函数原型简介2、代码示例四、获取大于指定键的元素-std::map#up......
  • 时间复杂度(常数循环、strchr、冒泡排序、二分查找)
    1.1常数循环//计算复杂度voidFunc4(intk){intcount=0;for(intk=0;k<100;++k){++count;}printf("%d\n",count);}时间复杂度为:O(1)  注:O(1)不是代表算法只能运行一次,是常数次1.2strchr的时间复杂度//计算strchar的时间复杂度constchar*strchr(constc......
  • 二分查找算法---java----黑马程序员算法
    1.二分查找算法给定的条件:给定的有序数组A查找目标值为target,其中A标记为 数组序号从0开始,其下标最大为数组长度-1.举例数组:5  14  22 30 31  41 44条件:i>j  i表示左边下标   j表示右边下标   i从5开始   j 从44开始思想:每次计算其......
  • 在Python中,如果你想查找特定的SQLite数据库文件(例如'mydatabase.db'),你可以使用os模块
    这是Python中os.walk()函数的常见用法¹²⁴⁵⁶。os.walk()函数用于递归遍历指定目录及其子目录,并返回一个生成器,每次迭代都会返回一个包含三个元素的元组:当前目录的路径、当前目录下所有子目录的列表和当前目录下所有文件的列表¹²⁴⁵⁶。在fordirpath,dirnames,filenamesi......
  • Linux文件查找、三剑客、正则表达式
    Linux文件查找1.find查找概述为什么要有文件查找,因为很多时候我们可能会忘了某个文件所在的位置,此时就需要通过find来查找。find命令可以根据不同的条件来进行查找文件,例如:文件名称、文件大小、文件修改时间、属主属组、权限、等等方式。同时find命令是Linux下必须掌握的。*fi......
  • `pip` 和 `pip3` 是 Python 的包管理工具,它们可以用来查找、下载、安装和卸载 Python
    `pip`和`pip3`是Python的包管理工具,它们可以用来查找、下载、安装和卸载Python包¹。这两个命令的区别主要取决于你的系统中安装的Python版本¹³⁴⁵:-如果你的系统中只安装了Python2,那么只有`pip`可以使用³。-如果你的系统中只安装了Python3,那么`pip`和`pi......
  • day01 代码随想录算法训练营 704. 二分查找
    题目:leetcode704.二分查找 感悟:困扰我多年的二分查找对于边界的判断,我终于理解了。难点:难点1:定边界rightright=len(nums)还是len(nums)-1 难点2:while循环whileleft<right还是left<=right 难点3:mid取值mid=right-1还是mid=right  结论:1.自己确定......