将一个数组中的元素向后移动k位

2023-11-04

//设计一个算法,将数组A(0…n-1)中的元素循环右移K位
//假设原数组序列为:a0,a0,…,an-2,an-1;
//移动后的序列为 :an-k,an-k+1,…,a0,a1,…,an-k,ab-k-1。
//要求只用一个元素大小的附加存储,元素移动或变换次数与n线性相关
//例如,n=10,k=3;
//请用相应的程序实现
//原始数组:0 1 2 3 4 5 6 7 8 9
//右移后的:7 8 9 0 1 2 3 4 5 6

#include<stdio.h>

void Translation(int data[10],int start,int end,int k)
{
	int i,j;
	int t;
	//假如k==3
	//逆置数组元素 9876543210
	for(i=start,j=end;i<j;i++,j--)
	{
		t=data[i];
		data[i]=data[j];
		data[j]=t;
	}
	//逆置前k个元素  :7896543210
	for(i=start,j=k-1;i<j;i++,j--)
	{
		t=data[i];
		data[i]=data[j];
		data[j]=t;
	}
	//逆置后面的剩余元素
	for(i=k,j=end;i<j;i++,j--)
	{
		t=data[i];
		data[i]=data[j];
		data[j]=t;
	}
}

int main(void)
{
	int k;
	printf("请输入要右移的个数:");
	scanf("%d",&k);
	int data[10]={0,1,2,3,4,5,6,7,8,9};
	Translation(data,0,9,k);
	for(int i=0;i<10;i++)
	{
		printf("%d",data[i]);
	}
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将一个数组中的元素向后移动k位 的相关文章

  • 645.错误的集合(力扣leetcode) 博主可答疑该问题

    一 笔记部分 思路 1 可以用排序 先排序后连续两个相同 还有那个位置上缺了就是那个 2 转化为负数 先遍历一次先将每个元素所对应位置的树转化为负数 然后再遍历一次看那个是负数 就是出现了两次 再看索引的数字是否为负数 因为出现了的都是为负
  • Java实现数据结构——数组

    数组是一种比较简单的数据结构 而且在大多数高级程序设计语言中都实现了数组 一 无序数组 利用面向过程的思想创建数组 实现数组元素的插入 查找和删除工作 public class Box public static void main Str
  • 数组JAVA

    JAVA数组详情 什么是数组 数组就是 存储一组数据类型相同的数据元素 数组在内存中空间是连续的 长度初始好 就不能再做改变 数组是属于应用类型的 对象 所以也就可以即存储基本数据类型 还可以存储引用类型 数组的声明 int a 这是声明了
  • 算法基础之数组理论

    算法基础之数组理论 1 前言 2 数组基础定义 3 数组增删改查 3 1基本功能 3 2添加元素 3 3查询和修改元素 3 4包含 搜索和删除元素 3 5其他 3 6检验 4 动态数组及其时间复杂度 4 1动态数组的实现 4 2增删改查时间
  • 数组的复制(Java技巧篇,四种方法详解)

    使用java lang System类中的arraycopy方法 优点 该方法可复制全部内容 也可复制一部分成为子数组 且目标数组与源数组没有关系 目标数组可以比源数组大 比较灵活 缺点 返回值为void 所以需要手动创建目标数组 参数含义
  • Java创建数组的几种方式

    1 一维数组的声明方式 type arrayName 或 type arrayName 附 推荐使用第一种格式 因为第一种格式具有更好的可读性 表示type 是一种引用类型 数组 而不是type类型 建议不要使用第二种方式 下面是典型的声明
  • 折半查找

    什么是折半查找 折半查找其实通过字面上的意思就是大致就可以理解为每次查找的时候 选取中间下标的值进行查找 如果找不到 就判断这个要查找的数大于还是小于这个这个中间下标的值 如果大于 就把这个中间值的下标 1给到左边的下标 中间下标 就等于
  • 【华为OD机试真题 python】等和子数组最小和【2022 Q4

    前言 华为OD笔试真题 python 专栏含华为OD机试真题 华为面试题 牛客网华为专栏真题 如果您正在准备华为的面试 或者华为od的机会 有任何想了解的可以私信我进行交流 我会尽可能的给一些建议 和帮您解答 PS 文中答案仅供参考 不能照
  • 微信小程序使用.concat()等数组连接爆错原因

    微信小程序数组连接爆错 当我们在微信小程序中使用数组连接时有时候会出下以下的错误 js里面的写法如下 this setData goods this data goods concat res data 其原因的是因为在微信小程序的data
  • CH4-串、数组和广义表

    文章目录 4 1 串的定义 4 2 案例引入 4 3 串的类型定义 存储结构及运算 4 3 1 顺序串 4 3 2 链串 4 3 3模式匹配算法 BF算法 KMP算法 4 4 数组 4 4 1抽象数据类型定义 4 4 2数组的顺序存储 4
  • JavaScript 数组(数组的增删和数组排序)

    一 数组方法 1 数组操作 push 向数组末尾添加元素 返回新数组长度 添加单个元素 let arr JS Java C let newArrLength arr push PHP console log arr JS Java C PH
  • 前端js拼接Json串

    前端js拼接json串 示例1 数组里面含对象 组成的json串 group
  • numpy tolist()的用法

    1 将数组或者矩阵转换成列表 如下 gt gt gt from numpy import gt gt gt a1 1 2 3 4 5 6 a1是列表 gt gt gt a2 array a1 列表 gt 数组 gt gt gt a2 arr
  • C语言char*字符串数组和unsigned char[]数组的相互转换

    include
  • C++:二维数组--输出斐波那契数列的前20项

    大家都知道 在数学世界中有很多神奇的数列 斐波那契数列正是众多有规律的数列中的一种 该数列是意大利数学家列昂纳多 斐波那契发现的 他的基本规律是从第三项开始 每一项都等于前两项之和 第一项和第二项都是1 斐波那契数列如下图所示 1 1 2
  • VBA SPLIT函数详解

    VBA编程是经常会用到字符串拆分函数SPLIT 用法也不复杂 但是大家对于这个函数的参数未必完全了解 下面结合示例讲解一下参数的用法 SPLIT函数的语法格式如下 Split expression delimiter limit compa
  • 自己创建下拉框数组

    自己创建1 8的数组供下拉框选择 this scanPositions new Array 8 fill null map i index gt return label index 1 车 value index 1
  • python 数组操作中的 “:” “:: ” “, ” python 中的 [:-1] 和 [::-1] [-1:-2:-1] [

    使用python版本3 7 首先先了解下python3 7中的下标 python下标有两套 一套是正的 一套是负的 引入负坐标的意义应该是方便将数组中的数据从右往左访问 a python 中的python 的下标描述如下 组 p y t h
  • 数据结构 --- 数组

    1 求数组中第二大的数 1 定义两个变量 2 const int MINNUMBER 32767 3 int find sec max int data int count 4 5 int maxnumber data 0 6 int se
  • C++基础-一维和二维数组详解

    目录 定义 一维数组 二维数组 定义 数组是相同类型的对象序列 它们占据一块连续的内存区 一维数组

随机推荐

  • 神经网络学习小记录-番外篇——常见问题汇总

    神经网络学习小记录 番外篇 常见问题汇总 前言 问题汇总 1 下载问题 a 代码下载 b 权值下载 c 数据集下载 2 环境配置问题 a 20系列所用的环境 b 30系列显卡环境配置 c CPU环境配置 d GPU利用问题与环境使用问题 e
  • springcloud配置中心_Spring Cloud集成Apollo分布式配置中心(含源代码)

    在Spring Cloud项目中使用Apollo 分布式配置中心之前 需要先启动Apollo的配置服务端 具体操作步骤 可参看如下链接 携程Apollo 阿波罗 分布式配置中心 总体架构设计和核心概念 携程Apollo 分布式配置中心 本地
  • 2021长安二中高考成绩查询,最全!2020年陕西省50所高中高考成绩汇总&数据分析!...

    原标题 最全 2020年陕西省50所高中高考成绩汇总 数据分析 目前 陕西省部分高中学校2020年的高考成绩流传出来 为家长们津津乐道 本文汇总了包含西安 宝鸡 咸阳 渭南 延安等各地市共50所学校的高考成绩 供家长们参考 2020年西安市
  • Spring启动的bean回调函数

    启动时调用 Spring启动时bean会按照如下顺序进行回调 构造函数 实现ApplicationContextAware的函数 PostConstruct标注的函数 实现InitializingBean接口的函数 Bean注解中initM
  • Boost练习程序(智能指针)

    include
  • 前端项目review之修改element-ui全局主题颜色配置element-theme-chalk和gulp

    每个公司的主题风格肯定是不一样的 比如现在的公司主题就是 00ab7a 在PC端TO B的项目中少不了用element ui 这个时候用element theme chalk直接本地编译修改了element全局的主题色 一 修改默认主题配色
  • 爬虫的概念

    爬虫 模拟浏览器的行为 向服务器发送请求 获取响应中的数据 往白了说就是模拟浏览器的行为 掌握要点 如何更像的模拟浏览器的行为 总结 浏览器能拿到的数据 就一定可以爬到 浏览器拿不到的数据 就一定爬不到
  • 【Ubuntu】Ubuntu系统启动过程中,输入用户名与密码后登录一直卡在紫色界面问题(未解决,最后通过重装系统)

    Ubuntu Ubuntu系统启动过程中 输入用户名与密码后登录一直卡在紫色界面问题 未解决 最后通过重装系统 参考文章 1 Ubuntu Ubuntu系统启动过程中 输入用户名与密码后登录一直卡在紫色界面问题 未解决 最后通过重装系统 2
  • React笔记(八)Redux

    一 安装和配置 React 官方并没有提供对应的状态机插件 因此 我们需要下载第三方的状态机插件 Redux 1 下载Redux 在终端中定位到项目根目录 然后执行以下命令下载 Redux npm i redux 2 创建配置文件 在 Re
  • js中包含中文注释引起的错误

    在一个js文件中有如下代码块 显示某块function MissBlock theid 在 aspx中引用该文件 执行页面时提示脚本错误 很长时间调试之后 发现与函数前的中文注释有关 把注释去掉或改成英文就OK了估计跟页面的编码设置有关 特
  • Linux内核-漫画

    学习的过程中发现了这个有意思的漫画 于是简单翻译了一下 原图 翻译
  • Springboot中使用策略模式+工厂模式

    策略模式和工厂模式相信大家都比较熟悉 但是大家有没有在springboot中实现策略和工厂模式 具体策略模式和工厂模式的UML我就不给出来了 使用这个这两个模式主要是防止程序中出现大量的IF ELSE IF ELSE 接下来咱们直接实现 项
  • es文档操作

    1 kibana操作 1 1新增文档 语法 POST 索引库名 doc 文档id 字段1 值1 字段2 值2 字段3 子属性1 值3 子属性2 值4 示例 POST heima doc 1 info 黑马程序员Java讲师 email zy
  • 嘴说手画Spark的内存模型

    一 内存模型 Spark的内存模型如下图所示 Reserved Memory 固定为 300MB 不受开发者控制 是启动Spark框架本身所需要的内存空间 UserMemory 是用户空间 即用户定义的数据 通常是用户在代码中定义的变量 可
  • iMazing高效便捷的数据转移功能

    近几年来iMazing设备管理工具被广大苹果用户所青睐 相比苹果的另一个设备管理工具iTunes iMazing更具有操作简单 易掌握的优势 iMazing支持将iOS手机数据备份到电脑 支持将数据恢复到苹果设备中 也支持将手机数据转移到其
  • python 注意事项(—)

    1 优先级高于 1 Since has higher precedence than 3 2 will be interpreted as 3 2 and thus result in 9 To avoid this and get 9 y
  • ChatGPT的Fine-tuning是什么?

    fine tuning基本概念 Fine tuning 微调 是指在预训练过的模型基础上 使用特定任务的数据进行进一步的训练 以使模型更好地适应该任务 在ChatGPT的情况下 Fine tuning是指在预训练的语言模型上使用对话数据进行
  • dyld: Library not loaded:

    dyld Library not loaded 问题 在使用阿里的开源库LazyScrollView的时候出现的这个问题 本地Xcode11 4 1 真机调试 dyld Library not loaded rpath LazyScroll
  • centos查看系统名称、架信息

    centos查看系统名称 架构 hostnamectl
  • 将一个数组中的元素向后移动k位

    设计一个算法 将数组A 0 n 1 中的元素循环右移K位 假设原数组序列为 a0 a0 an 2 an 1 移动后的序列为 an k an k 1 a0 a1 an k ab k 1 要求只用一个元素大小的附加存储 元素移动或变换次数与n线