顺序表应用6:有序顺序表查询
来源:互联网 发布:淘宝什么值得买 编辑:程序博客网 时间:2024/06/13 21:27
顺序表应用6:有序顺序表查询
Problem Description
顺序表内按照由小到大的次序存放着n个互不相同的整数,任意输入一个整数,判断该整数在顺序表中是否存在。如果在顺序表中存在该整数,输出其在表中的序号;否则输出“No Found!"。
Input
第一行输入整数n (1 <= n <= 100000),表示顺序表的元素个数;
第二行依次输入n个各不相同的有序非负整数,代表表里的元素;
第三行输入整数t (1 <= t <= 100000),代表要查询的次数;
第四行依次输入t个非负整数,代表每次要查询的数值。
保证所有输入的数都在 int 范围内。
Output
输出t行,代表t次查询的结果,如果找到在本行输出该元素在表中的位置,否则本行输出No Found!
Example Input
101 22 33 55 63 70 74 79 80 87455 10 2 87
Example Output
4No Found!No Found!10
Hint
Author
解题思路:
查询,就是和关键数字进行比较。但如果遍历寻找会超时,但是顺序表有序,所以可以用二分查找。
#include <iostream>
using namespace std;
typedef int status;
typedef int element;
typedef struct
{
element *elem;
int length;
int listsize;
}list;
status chushi(list &l)
{
l.elem=new int[1000001];
if(!l.elem)return -1;
l.length=0;
return 0;
}
status creat(list &l,int n)
{
l.elem=new int[1000010];
l.length=n;
if(!l.elem)return -1;
else
{
for(int i=0;i<n;i++)
{
cin>>l.elem[i];
}
}
return 0;
}
status find(list &l,int s,int d,int key)
{
int mid=(s+d)/2;
if(s==d)
{
if(key==l.elem[s])
{cout<<s+1<<endl;return 0;}
else
{cout<<"No Found!"<<endl;return 0;}
}
if(l.elem[mid]==key)
{cout<<mid+1<<endl;return 0;}
else if(l.elem[mid]>key)
find(l,s,mid,key);
else
find(l,mid+1,d,key);
return 0;
}
void display(list l)
{
int i;
for(i=0;i<l.length;i++)
{
if(i==l.length-1)
cout<<l.elem[i]<<endl;
else
cout<<l.elem[i]<<" ";
}
}
int main()
{
int n,T,c;
cin>>n;
list l;
creat(l,n);
cin>>T;
while(T--)
{
cin>>c;
find(l,0,n-1,c);
}
return 0;
}
- SDUT 3330顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 【3330】顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- sdut oj3330 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- SDUT3330顺序表应用6:有序顺序表查询
- Excel数据处理
- switch case支持的类型
- spark 运行原理
- EasyUI Datagrid 鼠标悬停显示单元格内容
- JAVA解决XSS漏洞
- 顺序表应用6:有序顺序表查询
- RxJava2详解(三)--调度器
- kNN算法笔记
- hoj2713(最小点权覆盖)
- Cleanup failed to process the following paths错误的解决
- 面试题(5)
- 关于windows下vmware出现vcpu-0错误
- String、StringBuffer、StringBuilder的区别!!
- IOS app蓝牙连接硬件设备 自动断开问题