数据结构——顺序表有序顺序表查询
2017-10-05 21:45
211 查看
顺序表应用6:有序顺序表查询
Time Limit: 1000MS Memory Limit: 4096KB[align=center]Submit Statistic[/align]
Problem Description
顺序表内按照由小到大的次序存放着n个互不相同的整数,任意输入一个整数,判断该整数在顺序表中是否存在。如果在顺序表中存在该整数,输出其在表中的序号;否则输出“No Found!"。Input
第一行输入整数n (1 <= n <= 100000),表示顺序表的元素个数;第二行依次输入n个各不相同的有序非负整数,代表表里的元素;
第三行输入整数t (1 <= t <= 100000),代表要查询的次数;
第四行依次输入t个非负整数,代表每次要查询的数值。
保证所有输入的数都在 int 范围内。
Output
输出t行,代表t次查询的结果,如果找到在本行输出该元素在表中的位置,否则本行输出No Found!Example Input
10 1 22 33 55 63 70 74 79 80 87 4 55 10 2 87
Example Output
4 No Found! No Found! 10
Hint
01 | #include<stdio.h> |
02 | #include<stdlib.h> |
03 | #define maxsize 100000 |
04 | typedef struct |
05 | { |
06 | int data[maxsize]; |
07 | int last; |
08 | } sl; |
09 | sl |
10 | { |
11 | sl *l; |
12 | l=(sl*) malloc ( sizeof (sl)); |
13 | l->last=-1; |
14 | return l; |
15 | } |
16 | sl *build(sl *l, int n) //顺序表数据输入函数 |
17 | { |
18 | int i; |
19 | for (i=0; i<n; i++) |
20 | { |
21 | scanf ( "%d" ,&l->data[i]); |
22 | } |
23 | l->last=n; |
24 | return l; |
25 | } |
26 | int found(sl *l, int x, int n) //数据查找函数 |
27 | { |
28 | int low=0,high=n-1,mid=0; |
29 | while (low<=high) |
30 | { |
31 | mid=(low+high)/2; |
32 | if (l->data[mid]<x) |
33 | { |
34 | low=mid+1; |
35 | } |
36 | else if (l->data[mid]>x) |
37 | { |
38 | high=mid-1; |
39 | } |
40 | else |
41 | { |
42 | return mid+1; |
43 | } |
44 | } |
45 | return 0; |
46 | } |
47 | int main() |
48 | { |
49 | sl *l; |
50 | int n,t,x,y; |
51 | scanf ( "%d" ,&n); |
52 | l=makeempty(); |
53 | l=build(l,n); |
54 | scanf ( "%d" ,&t); |
55 | while (t--) |
56 | { |
57 | scanf ( "%d" ,&x); |
58 | y=found(l,x,n); |
59 | if (!y) |
60 | { |
61 | printf ( "No Found!\n" ); |
62 | } |
63 | else |
64 | { |
65 | printf ( "%d\n" ,y); |
66 | } |
67 | } |
68 | return 0; |
69 | } |
70 |
71 |
72 | /*************************************************** |
73 | User name: jk160618郭衣鹏 |
74 | Result: Accepted |
75 | Take time: 84ms |
76 | Take Memory: 500KB |
77 | Submit time: 2017-10-05 21:42:55 |
78 | ****************************************************/ |
相关文章推荐
- 数据结构顺序表应用6:有序顺序表查询
- 数据结构——顺序表有序顺序表归并
- 【3330】顺序表应用6:有序顺序表查询
- 查询MySQL数据表的字段名和表结构
- [SDUT](2121)数据结构实验之链表六:有序链表的建立
- SDUT2121数据结构实验之链表六:有序链表的建立
- 【2119】数据结构实验之链表四:有序链表的归并
- 数据结构实验之链表六:有序链表的建立
- 【数据结构】单链表,双端链表,有序链表
- 关于mysql中数据存储复合树形结构,查询时结果按树形结构输出
- sdut.acm2012级《程序设计基础Ⅱ)》_链表 数据结构实验之链表四:有序链表的归并
- 数据结构顺序表——线性表实现
- 数据结构与算法题目集(中文)——5-53 两个有序序列的中位数 (25分)——链表
- 数据结构—有序表—归并排序
- 3330顺序表应用6:有序顺序表查询
- 顺序表应用6:有序顺序表查询
- 数据结构顺序表
- 【数据结构_顺序表_List_1103】我记得是叫删除来着......
- 数据结构顺序表(2)(链表)
- 数据结构——顺序表