社区
VB基础类
帖子详情
求数组移位的算法
天边一只鼠
2005-10-03 11:36:25
定义了一个数组,如1,2,3,4,5,6,7
如何才能实现如3,4,5,6,7,1,2的算法
...全文
236
9
打赏
收藏
求数组移位的算法
定义了一个数组,如1,2,3,4,5,6,7 如何才能实现如3,4,5,6,7,1,2的算法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
天边一只鼠
2005-10-06
打赏
举报
回复
问题算是解决了,我的数不算多10来个,我只是初学滴,用了数组移位,每移动一位后面的数组都要跟着移动一位,不知道这样的效率算不算低啊.
tb01412
2005-10-04
打赏
举报
回复
很简单啊,就是用临时数组,然后把重新调整好的数据再写回原始数组中就行了啊,这个办法比较通用,但效率低下,你如果接触过C++中的STL,就去研究一下list,就能提高运行效率了
province_
2005-10-04
打赏
举报
回复
既然是说算法,就该按给定的要求交换元素来得到,COPYMEMORY本质也是一种交换(单向而已)
fanzai
2005-10-04
打赏
举报
回复
如果我没记错的话,编译成exe的vb程序,用for语句比copymemory还快。(可能是数组不够大)
熊孩子开学喽
2005-10-04
打赏
举报
回复
如果数组不长,直接交换数组元素内容就可以作到。
如果数组很长,使用COPYMEMORY就很快。
w3k
2005-10-04
打赏
举报
回复
/*
*_*
*/
northwolves
2005-10-04
打赏
举报
回复
COPYMEMORY
tb01412
2005-10-04
打赏
举报
回复
如果你接触过STL的话,就应该明白循环链表的实现方式了,就能达到O(1)的执行效率
fanzai
2005-10-04
打赏
举报
回复
如果数组很大,而且一定要很高效率的话……
你可以用一个变量nStart来记住这个数组是从哪里开始的。最初是nStart=1(或者0什么的?),要移位的时候nStart=nStart+1(左移+,右移-,移多少就+/-多少)。
但是这样你不能随便改变数组大小,会乱套的。
数组
循环
移位
算法
参考.pdf
数组
循环
移位
算法
参考.pdf
字符
数组
循环位移高效
算法
/* 2010年考研数据结构综合应用的一道题...* 要
求
将长度为n的
数组
做p位循环
移位
,效率应尽量高。例如将ABCDEFG做3位循环移动(向右) * 结果是EFGABCD。 * 下面这个
算法
时间复杂度为O(n)空间复杂度为O(1)相当高效。 */ //
C语言实现
数组
的循环
移位
的方法示例
算法
Reverse Array (
数组
翻转) code void reverse(int array[], int left, int right) { int l, r; for (l = left, r = right; l < r; l++, r--) { array[l] = array[l] ^ array[r]; array[r] = array[l...
数组
循环左移
设将n(n>1)个整数存放到一维
数组
R中。设计一个代码将R中的序列循环左移P(0),即将R中的数据由 {X0,X1,……Xn-1}变换为{Xp,Xp+1,……,Xn-1,X0,X1,……,Xp-1} 分析:将前P个元素逆置,再将剩下的元素逆置,...
shift.m:移动
数组
的元素(任何维度)-matlab开发
SHIFT 对于图像数据的
移位
(包括子像素
移位
)特别有用。 填充方法与MATLAB函数padarray.m(“圆形”,“复制”,“对称”)中的填充方法相同,以及与数值(例如,为0)或NaN进行填充的方法相同。 屏幕截图显示了...
VB基础类
7,763
社区成员
197,609
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章