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

D - 顺序表应用3:元素位置互换之移位算法 D - 顺序表应用3:元素位置互换之移位算法 Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),借助元素移位的方式,设计一个空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的... 阅读详情

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>

typedef struct
{
    int data[1000010];
    int len;
}hh;

void creat(hh* h,int n)
{
    for(int i=0;i<n;i++){
        scanf("%d",&h->data[i]);
    }
    h->len=n;
}

void change(hh* h,int m)
{
    int k=0;
    while(m--){
        k=h->data[0];
        for(int i=0;i<h->len-1;i++)
        {
            h->data[i]=h->data[i+1];
        }
        h->data[h->len-1]=k;
    }
}

void show(hh* h,int len)
{
    for(int i=0;i<len-1;i++){
        printf("%d ",h->data[i]);
    }
    printf("%d\n",h->data[len-1]);
}


int main()
{
    int n,len,m;
    scanf("%d",&n);
    hh* h=(hh*)malloc(sizeof(hh));
    while(n--)
    {
        scanf("%d%d",&len,&m);
        creat(h,len);
        change(h,m);
        show(h,len);
    }
return 0;
}

 

手把手教你用Xilinx SelectIO IP核搞定ADS42LB69高速ADC的DDR数据采集(附仿真调试技巧) 本文详细介绍了如何使用Xilinx SelectIO IP核实现ADS42LB69高速ADC的DDR数据采集,包括IP核配置、仿真验证和硬件调试技巧。通过精准的时序控制和实战调试方法,解决高速数据采集中的时序对齐问题,提升系统稳定性和可靠性。特别适合FPGA工程师和高速ADC接口设计者参考。 阅读详情

相关推荐

【DDSCAT——离散偶极近似仿真程序04】参数理解和模型设计

在这一部分,我们开始理解DDSCAT程序设计中的一些参数问题。 承接第二部分内容中的ddscat.par文件,我们来聊一聊偶极子、实际体积、有效半径等关键词。 一、偶极子点阵 手册中说,我们需要设计模型(target/目标),它是有偶极子点阵组成的。偶极子,顾名思义,是由一对电荷组成的,但我们不用设计一对,我们设计一个点就行,...

XD_Yangf的博客 7552

第三章:顺序结构习题

概念填空题(7) 1:定义两个数,a,b; 2:输出两个整数类型表达式; 3:输出这两个整数类型表达式; (13) 1.声明三个小数类型变量a,b,c 2.输入a和b的值 3.c等于sqrt(aa+bb)/(a+b); 4.输出c此时c为数学式的答案. (14) 1.定义三个数a,b,c; 2.输入a,b的值; 3.输出a,b并赋值; 4:进行数学公式运算:sqrt(fabs(a-b))/2*(a+b); 5.输出c的值 单项选择题(2) 1:开始...

weixin_61930932的博客 785

Visionpro 使用CogPMAlignTool工具提取匹配轮廓点

【代码】Visionpro 使用CogPMAlignTool工具提取匹配轮廓点。

weixin_43947315的博客 2092

Java主方法中的顺序结构

输出一个由组成的实心等腰三角形,如图 1 所示。图 1。

OraOla的博客 1312

解密高并发系统的瓶颈:五大解决方案

在互联网应用中,高并发是指在短时间内同时有大量的用户访问一个网站或服务,造成系统压力过大,导致服务器宕机或服务停止响应的情况。高并发是互联网应用面临的一个重要问题,需要采取一系列措施来解决。负载均衡、缓存、数据库优化、异步处理和分布式架构是解决高并发问题的主要方法。在实际应用中,需要根据具体情况选择不同的方法来解决高并发问题。在高并发情况下,使用负载均衡是解决问题的一种常见方法。负载均衡可以通过将请求分配到多个服务器上,从而减少单个服务器的负载。这可以通过硬件设备或软件实现。

BUG制造者:图图 <p>这是一个P标签</p> 3904

Linux磁盘扩容实战:用parted命令无损扩展/data分区(附常见报错解决方案)

本文详细介绍了在Linux生产环境中使用parted命令对已挂载的/data分区进行在线磁盘扩容的完整实战流程。通过风险评估、状态检查、parted工具深度解析及实战演练,指导用户安全完成动态扩容,并提供了常见报错如'Partition is being used'、MBR 2TB限制等的解决方案,确保业务不中断、数据不丢失。

weixin_29207439的博客 297

距离( 顺序结构 )

显然,快车与慢车的距离会不断拉开,每过一个小时(60 分钟),两车的距离就拉开 30 公里。现在,告诉你两车之间的距离为 L 公里,请你求出两车已经行驶了多长时间?一辆车的速度为 60 km/h,另一辆车的速度为 90 km/h。先乘60再除30的,这样会爆int,需要用long long。所以答案应该为 L / 0.5 即 L * 2;两辆汽车在同一地点,同时,沿同一方向前进。输入包含一个整数 L,表示两车之间的距离。,其中 X 为已经行驶的时间,单位为分钟。此时可以采用位运算的方法, L ...

weixin_63914060的博客 649

科研生产力革命:手把手教你打造基于大模型的Research Agent(文献调研+论文写作+思路激发)

本文介绍了如何利用Research Agent(科研智能体)提升科研效率。Research Agent能自主完成文献检索、信息整合和报告生成全流程,省去50%以上的基础工作时间。文章详细讲解了搭建运行环境的方法,包括工具准备和MetaGPT配置,并提供了两种实战方案:基础版Search-O1和专业版MetaGPT Research Agent。此外,还介绍了如何为垂直领域定制Agent,以及优化检索效果、改善报告逻辑等技巧。最后列举了学术研究、行业分析、内容创作和个人学习四大应用场景,帮助用户将AI从聊天工

LXY_LOVE36的博客 267

Python基础考试题目

1、关于Python的lambda函数,以下选项中描述错误的是 ( ) A、 lambda函数将函数名作为函数结果返回 B、 f = lambda x,y:x+y 执行后,f的类型为数字类型 C、 lambda用于定义简单的、能够在一行内表示的函数 D、 可以使用lambda函数定义列表的排序原则 我的答案:B 2、关于Python循环结构,以下选项中描述错误的是 ( ) A、 每个continue语句只有能力跳出当前层次的循环 B、 break用来跳出最内层for或者while循环,脱离该循环后程序从循环

qq_46614288的博客 1万+

国产化替代落地:C#+Avalonia跨平台开发(麒麟系统适配全流程)

摘要: 随着国产化替代政策的推进,麒麟操作系统成为国产替代的重要选择。本文介绍了如何使用C#和Avalonia框架开发跨平台应用,适配麒麟系统。Avalonia支持Windows、Linux(包括麒麟)和macOS,通过XAML设计UI,便于开发者快速上手。文章详细讲解了开发环境配置、XAML控件设计、Linux特性适配及性能优化,并强调政府30%研发补贴带来的政策红利。未来,随着国产系统生态完善,C#+Avalonia将成为企业跨平台开发的高效解决方案。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3475

STM32F103 -- LIN从机通讯 -- 程序代码 -- 详细讲解版(2万字长文)

主要代码分为3个文件,usart文件是对GPIO端口和串口Lin模式的初始化,lin_buffer文件是对串口环形缓冲区的编写,lin_driver文件是Lin从机模式驱动代码。通过这三个文件的代码便可实现STM32F103的LIN从机通讯。

晴朗luo的博客 1万+

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

顺序表应用3:元素位置互换之移位算法 Time Limit: 1000ms   Memory limit: 570K  有疑问?点这里^_^ 题目描述 一个长度为len(1数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1 注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。 输入  

DLFbest的博客 1676

VS中的C#项目怎样引入另一个项目

场景 在C#项目A中需要引用项目B。 实现 将项目B手动复制到A所在的项目目录下的同一个解决方案中,即与项目A同级的目录下。 在VS中打开项目B,打开解决方案资源管理器--右击解决方案--添加--现有项目 然后找到项目B的.csproj文件打开。 然后看到资源管理器中已经将B添加进来了 点击项目A的引用-右键-添加 将项目下的解决方...

BADAO_LIUMANG_QIZHI的博客 9321
上一篇: 顺序表应用2:多余元素删除之建表算法
下一篇: 顺序表应用4:元素位置互换之逆置算法
何处几年
博客等级 码龄8年 10粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值