SDUT-顺序表应用4:元素位置互换之逆置算法
来源:互联网 发布:逍遥模拟器没网络 编辑:程序博客网 时间:2024/06/11 22:05
顺序表应用4:元素位置互换之逆置算法
Time Limit: 10MS Memory Limit: 570KB
Submit Statistic
Problem Description
一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),设计一个时间复杂度为O(N)、空间复杂度为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
Hint
注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。
#include <stdio.h>#include <string.h>#include <stdlib.h>int m,len;typedef struct node{ int data[1000005]; int last;} str; str*lis;str*makeempty(str*lis){ lis=(str*)malloc(sizeof(str)); lis->last=-1; return lis;}str*creat(str*lis){ int i; scanf("%d%d",&len,&m); for(i=0;i<len;i++) { scanf("%d",&lis->data[i]); } lis->last=len; return lis;}void mov(int a,int b,str*lis){ int i; for(i=0;i<=(b-a)/2;i++) { int t=lis->data[i+a]; lis->data[i+a]=lis->data[b-i]; lis->data[b-i]=t; }}void show(str*lis,int len){ int i; for(i=0;i<len;i++) { printf("%d%c",lis->data[i],i==(len)-1?'\n':' '); }}int main(){ int n; str*lis; scanf("%d",&n); while(n--) { lis=makeempty(lis); lis=creat(lis); mov(0,len-1,lis); mov(len-m,len-1,lis);/*颠倒三次,第一次从头到尾颠倒,第二次尾部想放前面的部分颠倒, 第三次让前半部分颠倒*/ mov(0,len-1-m,lis); show(lis,len); } return 0;}
阅读全文
0 0
- sdut oj3327 顺序表应用4:元素位置互换之逆置算法
- SDUT 3327 顺序表应用4:元素位置互换之逆置算法
- <sdut-ACM>顺序表应用4:元素位置互换之逆置算法
- sdut acm 顺序表应用4:元素位置互换之逆置算法
- SDUT-顺序表应用4:元素位置互换之逆置算法
- sdut oj3663 顺序表应用4-2:元素位置互换之逆置算法(数据改进)
- sdut 3326 顺序表应用3:元素位置互换之移位算法
- sdut oj3326 顺序表应用3:元素位置互换之移位算法
- SDUT 3326 顺序表应用3:元素位置互换之移位算法
- SDUT-顺序表应用3:元素位置互换之移位算法
- 顺序表应用4:元素位置互换之逆置算法
- 顺序表应用4:元素位置互换之逆置算法
- 顺序表应用4:元素位置互换之逆置算法
- 顺序表应用4:元素位置互换之逆置算法
- 顺序表应用4:元素位置互换之逆置算法
- 顺序表应用4:元素位置互换之逆置算法
- 【3327】顺序表应用4:元素位置互换之逆置算法
- 顺序表应用4:元素位置互换之逆置算法
- Spring 三种方式注入
- codeforces 832B
- centos 开机启动tomcat
- 类之间的关系 声明类 20170724
- Android获取Manifest中<meta-data>元素的值
- SDUT-顺序表应用4:元素位置互换之逆置算法
- 局部二值模式(LBP)
- JAVA设计模式之抽象工厂模式
- Fiddler 详尽教程与抓取移动端数据包
- OC 属性的内存管理
- MySQL-- 安装错误(install/remove of the service denied)
- mybatis-generator 生成代码出错
- Chloe and the sequence CodeForces
- POJ