设计一个算法,将数组A[0···n ]中的所有元素循环右移k位,要求只用一个数组元素大小的附加空间

1个回答
展开全部
摘要 设计一个算法,将数组A(0...n-1)中的元素循环右移k位,假设原数组序列为a0, a1, ... an-2, an-1,移动后为an-k, an-k+1, ..., a0, a1, ... , an-k-1
咨询记录 · 回答于2022-10-03
设计一个算法,将数组A[0···n ]中的所有元素循环右移k位,要求只用一个数组元素大小的附加空间
设计一个算法,将数组A(0...n-1)中的元素循环右移k位,假设原数组序列为a0, a1, ... an-2, an-1,移动后为an-k, an-k+1, ..., a0, a1, ... , an-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
思路:空间上只用一个附加存储,即只有一个额外的空间存放数据;与n线性相关,即不能够采用多次右移的方式进行,需要一次成型。目前的想法是建立一个循环,采用确定的映射关系来进行交换元素。但是目前的循环体有问题
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消