顺序表应用3:元素位置互换之移位算法

Time Limit: 1000 ms Memory Limit: 570 KiB
Submit Statistic Discuss

Problem Description

一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),借助元素移位的方式,设计一个空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段。
注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。

Input

第一行输入整数n,代表下面有n行输入;
之后输入n行,每行先输入整数len与整数m(分别代表本表的元素总数与前半表的元素个数),之后输入len个整数,代表对应顺序表的每个元素。

Output

输出有n行,为每个顺序表前m个元素与后(len-m)个元素交换后的结果

Sample Input

2
10 3 1 2 3 4 5 6 7 8 9 10
5 3 10 30 20 50 80

Sample Output

4 5 6 7 8 9 10 1 2 3
50 80 10 30 20

Hint

注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能在一次循环中完成,不能分成两个部分输出。

#include <stdio.h>
#include <stdlib.h>int List[1000100];
int i, j, k;void createlist( int *List, int len, int m )
{for(i=0; i<m; i++){scanf("%d", &List[i]);}for(i=i, k=0; i<len; i++, k++) //k==i-m;{for(j=i; j>k; j--){List[j] = List[j-1];}scanf("%d", &List[k]);}
}int main()
{int len, m, n;scanf("%d", &n);while(n--){scanf("%d %d", &len, &m);createlist( List, len, m );for(i=0; i<len-1; i++){printf("%d ", List[i]);}printf("%d\n", List[i]);}return 0;
}

转载于:https://www.cnblogs.com/gaojinmanlookworld/p/10586920.html

SDUT OJ 顺序表应用3:元素位置互换之移位算法相关推荐

  1. 元素位置互换之移位算法

    顺序表应用3:元素位置互换之移位算法 Time Limit: 1000 ms Memory Limit: 570 KiB Submit Statistic Problem Description 一个 ...

  2. 顺序表应用3:元素位置互换之移位算法

    Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m< ...

  3. 设计一个高效算法,将顺序表的所有元素逆置,要求算法空间复杂度为O(1)。

    void ReverseList(SqList *L) {while(i<length||i>=0){if(j=0;j<(length-1)/2;j++){a=L->data[ ...

  4. 顺序表应用4:元素位置互换之逆置算法

    这道题和顺序表应用4-2:元素位置互换之逆置算法(数据改进)的算法没差什么. Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该 ...

  5. 顺序表应用4-2:元素位置互换之逆置算法(数据改进)

    Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m< ...

  6. 顺序表之元素位置互换(改进版)

    顺序表应用4-2:元素位置互换之逆置算法(数据改进) Time Limit: 80 ms Memory Limit: 600 KiB Submit Statistic Problem Descript ...

  7. 在顺序表中第五个位置插入一个元素9,实现顺序表插入的基本操作,输出顺序表中所有元素

    题目 在顺序表中第五个位置插入一个元素9,实现顺序表插入的基本操作,输出顺序表中所有元素 #include<iostream>using namespace std; #define OK ...

  8. 顺序表-删除所有元素值为x结点(相等加一,不等前移k)

    顺序表的存储结构: typedef struct{int data[Maxsize]; //存在顺序表中的元素int length; //存放顺序表的长度}SqList; 分析: 这里要删除顺序表的所 ...

  9. 顺序表-插入一个元素x后保持该顺序表L递增有序排序(查找+元素后移插入)

    顺序表的存储结构: typedef struct{int data[Maxsize]; //存在顺序表中的元素int length; //存放顺序表的长度}SqList; 分析: 要保持插入一个元素后 ...

  10. C语言创建顺序表并插入元素 详细注释

    顺序表是用一组地址连续的存储单元依次存储数据元素的数据结构.顺序表是线性表的一种,线性表是最常用且最简单的一种数据结构,一个线性表是 n 个数据元素的有限序列.我们使用 c 语言来创建顺序表并插入元素 ...

最新文章

  1. Android之如何优雅的管理ActionBar
  2. php传输html乱码解决
  3. 泰克示波器查眼图_泰克示波器
  4. InfluxDB基本使用说明
  5. 智能家居 (2) ——设计模式的引入
  6. chown r mysql ._chown -R 用户名:组名 ./ 及 chown用法介绍
  7. [原创]利用DropDownlist来控制Textbox输入数字的精度
  8. 1-2+3-4+......+99 除去88的和
  9. 有赞团队:SaaS公司的系统稳定与安全机制,附Saas研报
  10. Smart3D输出/输入空三结果
  11. HTTP协议原理与代码实践之大纲
  12. 软件测试方法(单元测试、集成测试、系统测试、确认测试)
  13. CTF gopher协议
  14. 故障树分析法MATLAB,故障树分析(FTA)方法及其基于VC的软件设计的研究
  15. arduino超声波测距接线图详细_Arduino Uno + HY-SRF05 超声波测距模块详细讲解演示实验...
  16. 2012湘潭ICPC邀请赛感悟
  17. 人工智能和计算机程序有什么区别,人工智能和机器学习之间有什么区别?
  18. 基于ESP32的蓝牙鼠标键盘(二)BleMouse.h函数解析
  19. easyUI form
  20. babel—ES6代码转换为ES5代码

热门文章

  1. 17.异常(三)之 e.printStackTrace()介绍
  2. Spring.Net学习笔记(1)-容器的使用
  3. IKONS – 赞!264 款手工打造的免费矢量图标
  4. 2019年8月19日矩阵
  5. 实例6 函数的返回值
  6. 学会git bash不求人
  7. 域内,如何限制一台电脑只能指定的域用户登录
  8. Hadoop1.0之集群搭建
  9. windows 7中的windows键相关的快捷键
  10. 【Spark】SparkStreaming-提交到集群运行