首页 > 其他分享 >顺序表应用6:有序顺序表查询

顺序表应用6:有序顺序表查询

时间:2022-11-18 16:45:01浏览次数:44  
标签:顺序 return int Sq mid 查询 有序 elemlist elem


顺序表应用6:有序顺序表查询

Time Limit: 7MS Memory limit: 700K

题目描述

顺序表内按照由小到大的次序存放着n个互不相同的整数(1<=n<=20000),任意输入一个整数,判断该整数在顺序表中是否存在。如果在顺序表中存在该整数,输出其在表中的序号;否则输出“No Found!"。

输入

 第一行输入整数n,表示顺序表的元素个数;
第二行依次输入n个各不相同的有序整数,代表表里的元素;
第三行输入整数t,代表要查询的次数;
第四行依次输入t个整数,代表每次要查询的数值。

输出

 输出t行,代表t次查询的结果,如果找到在本行输出该元素在表中的位置,否则本行输出No Found!

示例输入

10
1 22 33 55 63 70 74 79 80 87
4
55 10 2 87

示例输出

4
No Found!
No Found!
10

提示

 

#include <stdio.h>
#include <stdlib.h>
#define maxsize 20000

typedef int elemlist;

typedef struct
{
elemlist *elem;
int length;
int listsize;
}Sq;

int Sqinlist(Sq &L)
{
L.elem=(elemlist *)malloc(maxsize*sizeof(elemlist));
if(!L.elem)
return -1;
L.length=0;
L.listsize=maxsize;
return 0;
}
void listsert(Sq &L,int n)
{
int i;
for(i=0;i<n;i++)
scanf("%d",&L.elem[i]);
L.length=n;
}
int searchlist(Sq &L,elemlist r,elemlist l,elemlist m)
{
elemlist mid=(l+r)/2;
while(l>=r)
{
if(L.elem[mid]>m)
return searchlist(L,r,mid-1,m);
else if(L.elem[mid]<m)
return searchlist(L,mid+1,l,m);
else
{
printf("%d\n",mid+1);
return 0;
}
}
printf("No Found!\n");
}
int main()
{
int n,t;
Sq L;
elemlist m;
scanf("%d",&n);
Sqinlist(L);
listsert(L,n);
scanf("%d",&t);
while(t--)
{
scanf("%d",&m);
searchlist(L,0,L.length,m);
}
}

 

标签:顺序,return,int,Sq,mid,查询,有序,elemlist,elem
From: https://blog.51cto.com/u_15879559/5868795

相关文章

  • 顺序表应用3:元素位置互换之移位算法
    顺序表应用3:元素位置互换之移位算法TimeLimit:1000MSMemorylimit:570K题目描述一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m......
  • 顺序表应用2:多余元素删除之建表算法
    顺序表应用2:多余元素删除之建表算法TimeLimit:3MSMemorylimit:600K题目描述一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一......
  • 顺序队列及其操作
    一、顺序队列基本概念队列是一种特殊的线性表,它的特殊性在于队列的插入和删除操作分别在表的两端进行。插入的那端称为队尾,删除的那段称为队首,队列的插入和删除操作简称进......
  • 数传电台实现PLC远程控制中MCGS参数配置与查询
    1、施耐德PLC施耐德IPv4参数查询以及是否能使Modbus Server,通过查询TM221手册可获取端口为502,不同的PLC端口可能不同,一般公司都将502作为ModbusServe默认端口。2.串口屏(MC......
  • vue后台管理系统"多条件查询"书写逻辑
      首先要创建el-from表单,在表单中创建两个输入框并双向绑定 首选行内表单:  代码如下: <el-form:inline="true":model="formInline"class="demo-form-in......
  • 路飞项目快速查询目录
    路飞项目快速查询目录 项目开发流程pip换源python中虚拟环境的搭建数据库配置限)不用root用户操作数据库了(为数据库创建用户,并赋予权路飞项目的user表配置路飞前台......
  • 深分页查询慢问题
    深分页:分页太多,越往后的页数查询越慢。例如:selectid,name,balancefromaccountwherecreate_time>'2020-09-19'limit100000,10;limit100000,10意味着会扫描100......
  • 顺序栈及其操作
    一、顺序栈的基本概念 栈是一种特殊的线性表,规定它的插入和删除运算均在线性表的同一端进行,进行插入和删除操作的那一端称为栈顶,另一端称为栈底。栈的插入和删除操作分别......
  • 代码随想录day2---LeetCode977有序数组的平方&209长度最小的子数组&59螺旋矩阵II
    1.LeetCode977有序数组的平方题目链接给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,......
  • 代码随想录算法训练营第二天| 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩
    977.有序数组的平方题目建议:本题关键在于理解双指针思想题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/文章讲解:https://programmercarl.com/09......