数据结构——顺序表逆置之移位算法
来源:互联网 发布:非常嫌疑犯影评知乎 编辑:程序博客网 时间:2024/05/16 10:45
顺序表应用3:元素位置互换之移位算法
Time Limit: 1000MS Memory Limit: 570KB
Submit Statistic
Problem Description
一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),借助元素移位的方式,设计一个空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段。
注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。
注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。
Input
第一行输入整数n,代表下面有n行输入;
之后输入n行,每行先输入整数len与整数m(分别代表本表的元素总数与前半表的元素个数),之后输入len个整数,代表对应顺序表的每个元素。
之后输入n行,每行先输入整数len与整数m(分别代表本表的元素总数与前半表的元素个数),之后输入len个整数,代表对应顺序表的每个元素。
Output
输出有n行,为每个顺序表前m个元素与后(len-m)个元素交换后的结果
Example Input
210 3 1 2 3 4 5 6 7 8 9 105 3 10 30 20 50 80
Example Output
4 5 6 7 8 9 10 1 2 350 80 10 30 20
01
#include<stdio.h>
02
#include<stdlib.h>
03
#define maxsize 1000000
04
typedef
struct
05
{
06
int
data[maxsize];
07
int
last;
08
} sl;
09
sl *makeempty() //顺序表初始化函数
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-1;
24
return
l;
25
}
26
sl *change(sl *l,
int
m) //顺序表逆置函数
27
{
28
int
i,j;
29
int
a;
30
for
(i=1;i<=m;i++)
31
{
32
a=l->data[0];
33
for
(j=0;j<l->last;j++)
34
{
35
l->data[j]=l->data[j+1];
36
}
37
l->data[l->last]=a;
38
}
39
return
l;
40
}
41
void
show(sl *l,
int
n) //顺序表输出函数
42
{
43
int
i;
44
for
(i=0; i<=l->last; i++)
45
{
46
if
(i!=l->last)
47
printf
(
"%d "
,l->data[i]);
48
else
49
printf
(
"%d\n"
,l->data[i]);
50
}
51
}
52
int
main()
53
{
54
sl *l;
55
int
n,x,m;
56
scanf
(
"%d"
,&n);
57
while
(n--)
58
{
59
scanf
(
"%d %d"
,&x,&m);
60
l=makeempty();
61
l=build(l,x);
62
change(l,m);
63
show(l,m);
64
}
65
return
0;
66
}
67
68
69
/***************************************************
70
User name: jk160618郭衣鹏
71
Result: Accepted
72
Take time: 52ms
73
Take Memory: 200KB
74
Submit time: 2017-10-05 19:09:23
75
****************************************************/
阅读全文
0 0
- 数据结构——顺序表逆置之移位算法
- 数据结构——顺序表删除之移位算法
- 数据结构顺序表应用3:元素位置互换之移位算法然而我的思路跟移位没关系
- 数据结构顺序表应用1:多余元素删除之移位算法
- 数据结构与算法之——顺序栈
- 数据结构之自建算法库——顺序表
- 数据结构之自建算法库——顺序栈
- 数据结构之自建算法库——顺序环形队列
- 数据结构之自建算法库——顺序串
- 数据结构之自建算法库——顺序表
- 数据结构之自建算法库——顺序栈
- 数据结构——顺序表删除之建表算法
- 数据结构——顺序表互换之逆置算法
- 数据结构——算法之(042)(字符串移位包含的问题, s1是否可以由s2移位后得到)
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用1:多余元素删除之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用1:多余元素删除之移位算法
- telnet发邮件
- K:Eclipse Memory Analyzer的安装和使用
- [Django]Django官方文档的投票Web应用笔记
- 单层感知器的局限性--异或问题
- 设计模式
- 数据结构——顺序表逆置之移位算法
- eclipse 连接到 Hive 时的异常
- JavaScript读书学习笔记(三)——BOM
- 在线广告自动截屏监测系统使用帮助
- 快速幂和慢速乘
- 【扩展欧几里得】hdu 1576 A/B
- 【java基础】在Java中实现基本数据类型与字符、字符串之间的转换
- const
- 本次考试总结(2017.9.30考试)