论坛: 编程破解 标题: 大数组的转置算法[工作中遇到的问题] 复制本贴地址    
作者: sniper167 [sniper167]    论坛用户   登录

1 2 3
4 5 6
7 8 9
转置后成为
9 8 7
6 5 4
3 2 1

数组很大 比如 2048*2048以上

大家来谢谢 速度快 占用内存少 的算法

地主 发表时间: 07-07-13 17:39

回复: jhkdiy [jhkdiy]   版主   登录
确定是二维数组?

B1层 发表时间: 07-07-13 22:38

回复: sniper167 [sniper167]   论坛用户   登录
恩 确定是二维数组
并且二维数组里的每个数a[x][y]占两个字节 
在我的系统上 内存只有64M  cpu主频不到400M  所以要求占用空间少  运算速度快

B2层 发表时间: 07-07-19 14:38

回复: jhkdiy [jhkdiy]   版主   登录
最简单的就是首尾交换了,奇数个元素的话复杂度为(N/2)-1,偶数就是N/2了。试了没有?

B3层 发表时间: 07-07-19 21:19

回复: sniper167 [sniper167]   论坛用户   登录
试过了
速度慢  用户不能接受。。。

B4层 发表时间: 07-07-20 10:27

回复: sniper167 [sniper167]   论坛用户   登录
其实是做图片的旋转

90度 180度


B5层 发表时间: 07-07-20 10:28

回复: SysHu0teR [syshunter]   版主   登录
我记得当初学图形的时候教是用矩阵乘法来做的

B6层 发表时间: 07-07-22 03:23

回复: SysHu0teR [syshunter]   版主   登录
这个说的比较详细: http://www.ekany.com/wdg98/cg/contents/chapter3/les311.htm


B7层 发表时间: 07-07-22 03:35

回复: 286 [unique]   版主   登录
这恐怕最简单的算法就是最有效的算法。

B8层 发表时间: 07-08-14 13:12

回复: jhkdiy [jhkdiy]   版主   登录
啊,N久没见286了,

B9层 发表时间: 07-08-14 21:34

回复: NetFog [q70213526]   版主   登录
最简单的办法.将显示器倒过来..


B10层 发表时间: 07-08-15 16:42

回复: NetFog [q70213526]   版主   登录
没做过桌面应用软件..

是不是可以将图形放在一个容器里.将容器倒转或者90度转..然后一个抓图器.按当前图片的质量抓取图片..哈哈..这是我的烂主意..只会弄弄WEB程序.

B11层 发表时间: 07-08-15 16:47

回复: virgoshaka [virgoshaka]   论坛用户   登录
同意286说的~~哈哈
比如n*n数组,
就直接a[p][q]=a[n-1-p][n-1-q]
这样时间是O(n^2),但数组本身就是n^2的,还能比这更快???

B12层 发表时间: 07-08-17 17:45

回复: Xuan_Hacker [xuanhacker]   论坛用户   登录
要解决这个问题.....你数组中每个元素的取值范围是多少?

B13层 发表时间: 08-07-04 19:01

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号