求数组移位的算法

天边一只鼠 2005-10-03 11:36:25
定义了一个数组,如1,2,3,4,5,6,7
如何才能实现如3,4,5,6,7,1,2的算法
...全文
236 9 打赏 收藏 转发到动态 举报
写回复
用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(左移+,右移-,移多少就+/-多少)。
但是这样你不能随便改变数组大小,会乱套的。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧