sdut oj3327 顺序表应用4:元素位置互换之逆置算法
来源:互联网 发布:java布局方式 编辑:程序博客网 时间:2024/05/29 17:31
题目链接:<a target=_blank href="http://http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=3327" target="_blank">点击打开链接</a>
顺序表应用4:元素位置互换之逆置算法
Time Limit: 10ms Memory limit: 570K 有疑问?点这里^_^
题目描述
一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),设计一个时间复杂度为O(N)、空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段。
注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。
注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。
输入
第一行输入整数n,代表下面有n行输入;
之后输入n行,每行先输入整数len与整数m(分别代表本表的元素总数与前半表的元素个数),之后输入len个整数,代表对应顺序表的每个元素。
之后输入n行,每行先输入整数len与整数m(分别代表本表的元素总数与前半表的元素个数),之后输入len个整数,代表对应顺序表的每个元素。
输出
输出有n行,为每个顺序表前m个元素与后(len-m)个元素交换后的结果
示例输入
210 3 1 2 3 4 5 6 7 8 9 105 3 10 30 20 50 80
示例输出
4 5 6 7 8 9 10 1 2 350 80 10 30 20
提示
注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。
思路:进行三次逆转置操作
代码实现:
#include <iostream>#include<stdio.h>#include<stdlib.h>#define maxsize 10000using namespace std;typedef struct{ int *elem; int length; int lastsize;}Sq;int initList(Sq *L){ L->elem=(int *)malloc(maxsize *sizeof(int)); if(!L->elem) return -1; L->length=0; L->lastsize=maxsize; return 0;}void create(Sq *L,int n){ int i; for(i=0;i<n;i++) scanf("%d",&L->elem[i]); L->length=n;}void invert(Sq *L,int n,int m){ int t; int i=n,j=m-1; while(i<j) { t=L->elem[i]; L->elem[i]=L->elem[j]; L->elem[j]=t; i++;j--; }}void display(Sq *L){ for(int i=0;i<L->length-1;i++) printf("%d ",L->elem[i]); printf("%d\n",L->elem[L->length-1]);}int main(){ Sq L; int t; int n,m; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); initList(&L); create(&L,n); invert(&L,0,m);///前半部分转置 invert(&L,m,n);///后半部分转置 invert(&L,0,n);///全部进行转置操作 display(&L); } 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:元素位置互换之逆置算法
- 关于系统设计
- Google Protocol Buffer 的使用和原理
- git忽略跟踪已在远程仓库里的文件
- android之ConnectivityManager简介,网络连接状态
- 计划任务
- sdut oj3327 顺序表应用4:元素位置互换之逆置算法
- java JNI 实现原理 (一)
- 环境搭建基础知识3(sublime text3常用快捷方式 列操作)
- Android获取状态栏高度
- UILabel 首行缩进两个字符
- 非注解的SpringMVC的映射器
- $.ajax()
- OpenCV学习笔记——滑动条开关
- 计词unigram和bigram的频次