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

C语言-数据结构-可变长顺序表的初始化,插入和输出 问题描述: 实现可变长顺序表的建表过程。任务要求:通过顺序表的初始化、插入算法,实现顺序表的建表,并依次输出顺序表元素。 【输入形式】 第一行输入整数N(1<=N<=100),表示创建长度为N的顺序表; 第二行输入N个整数,表示顺序表的N个元素,依次放入表中; 【输出形式】 依次输出顺序表的全部元素。(以空格分隔) 【样例输入】 5 1 2 3 4 5 【样例输出】 1 2 3 4 5 实现可变长顺序表要定义:初始的存储空间空间(INIT_SIZE)和空间再分配的增量大小 阅读详情

Problem Description

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

Input

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

保证所有输入的数都在 int 范围内。

Output

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

Sample Input

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

Sample Output

4
No Found!
No Found!
10
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
typedef struct
{
    int data[100010];
    int len;
}hh;

void creat(hh* h,int n)
{
    for(int i=0;i<n;i++){
        scanf("%d",&h->data[i]);
    }
    h->len=n;
}

int find(hh* h,int k,int a,int b)
{
    if(a==b&&h->data[a]!=k) return -1;
    if(h->data[(a+b)/2]==k) return (a+b)/2;
    else if(h->data[(a+b)/2]<k) return find(h,k,(a+b)/2+1,b);
    else if (h->data[(a+b)/2]>k) return find(h,k,a,(a+b)/2);
}

int main()
{
    hh* a=(hh*)malloc(sizeof(hh));
    int n,m,k;
    scanf("%d",&n);
    creat(a,n);
    scanf("%d",&m);
    for(int i=0;i<m;i++){
        scanf("%d",&k);
        int f=find(a,k,0,a->len-1);
        if(f==-1) printf("No Found!\n");
        else printf("%d\n",f+1);
    }

return 0;
}

 

 

G - 顺序表应用6:有序顺序表查询 Description 顺序表内按照由小到大的次序存放着n个互不相同的整数,任意输入一个整数,判断该整数在顺序表中是否存在。如果在顺序表中存在该整数,输出其在表中的序号;否则输出“No Found!"。 Input 第一行输入整数n (1 <= n <= 100000),表示顺序表的元素个数; 第二行依次输入n个各不相同的有序非负整数,代表表里的元素; 第三行输入整数t (1 <... 阅读详情

相关推荐

顺序表基本练习-查找元素

【问题描述】 实现可变长顺序表的查找算法。任务要求:通过顺序表的初始化、插入建立顺序表,根据查找要求,返回查找结果。 【输入形式】 第一行输入整数N,M。N表示创建长度为N的顺序表;M表示输入M个查找的关键值。 第二行输入N个整数,表示顺序表的N个元素,依次放入表中; 接下来输入M个查找的关键值。 【输出形式】 对于每个查找关键值,若找到,输出其在顺序表的位序,若未找到,输出“no”。

AIGC 1701

顺序表的实现(C语言 数据结构)

#include <stdio.h> #include <stdlib.h> #define ERROR 0 #define OK 1 typedef struct Vector { int size, length; int *data; } Vector; void init(Vector *vector, int size) { vector->size = size; vector->length = 0; vecto

YancyHao的博客 435

哈工大数据结构实验四_查找结构

实验项目:查找结构的实验比较 实验题目:BST 查找结构与折半查找方法的实现与实验比较 实验内容: 本实验要求编写程序实现 BST 存储结构的建立(插入)、删除、查找和排 序算法;实现折半查找算法;比较 BST 查找结构与折半查找的时间性能。 实验要求: 1.设计 BST 的左右链存储结构,并实现 BST 插入(建立)、删除、查找和排 序算法。 2.实现折半查找算法。 3.实验比较:设计并产生实验测试数据,考察比较两种查找方法的时间性能, 并与理论结果进行比较。

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

顺序表应用6:有序顺序表查询 Time Limit: 1000 ms Memory Limit: 4096 KiB Submit Statistic Discuss Problem Description 顺序表内按照由小到大的次序存放着n个互不相同的整数,任意输入一个整数,判断该整数在顺序表中是否存在。如果在顺序表中存在该整数,输出其在表中的序号;否则输出“No Found!"。 In...

Allinone99的博客 294

Python实现课程时间表

用Python实现课程表功能

life is like a play 2041

【机电杂谈2】BLDC和PMSM的特点和区别

在日常生活中,小到电动玩具,大到电动汽车,永磁电机的身影可以说是无处不在。有刷直流电机、无刷直流电机、永磁同步电机由于其结构和输出特定的不同也被应用到不同的场合。如果你经常拆一些玩具和家电,就会看到大量的有刷直流电机和无刷直流电机,而永磁同步电机主要应用在高精度的工业伺服和电动汽车领域。本文就从电机的结构和控制方面,对这几种常见的永磁电机做简单的梳理和归纳。

2936

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

顺序表应用6:有序顺序表查询 Time Limit:1000 msMemory Limit:4096 KiB SubmitStatistic Problem Description 顺序表内按照由小到大的次序存放着n个互不相同的整数,任意输入一个整数,判断该整数在顺序表中是否存在。如果在顺序表中存在该整数,输出其在表中的序号;否则输出“No Found!"。 Input 第一...

Move on 168

代码生成 | 安时积分法模型搭建

安时积分法是电池电量计量最基础的方法,今天我们用simulink建模的方式做一个安时积分模型,从而更好地理解安时积分的思想也掌握建模的基础操 ​新建文件 打开MATLAB启动simulink新建一个模型文件 定义变量 和手写代码一样,先定义几个后面要用到的变量,在simulink建模时新建变量用Data Store Memory模块。双击填入要定义的变量名,然后在signal attributes赋初值 如此方法新建四个变量current(电流)初值1000mA、tatol_cap(总容量

ningvay的博客 1万+
上一篇: 顺序表应用5:有序顺序表归并
下一篇: Catch That Cow
何处几年
博客等级 码龄8年 10粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值