免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: phy0077
打印 上一主题 下一主题

一个算法题目 [复制链接]

论坛徽章:
1
午马
日期:2013-08-23 23:39:47
11 [报告]
发表于 2010-03-21 10:23 |只看该作者
a1, a2, ... , an, b1, b2, ... , bn,
a2 与 b1 互换

形成
a1 b1 a3 ... an  ; a2,b2,.b3,....bn
把前 ...
peidright 发表于 2010-03-21 09:08



    你打印结果看看, 你的描述看上去也有错误。
这个题目很复杂

论坛徽章:
0
12 [报告]
发表于 2010-03-21 10:43 |只看该作者
本帖最后由 peidright 于 2010-03-21 10:58 编辑

回复 11# phy0077
举个例子

             a1 a2 a3 a4 a5  b1 b2 b3 b4 b5

i=1 第一轮: a1 b1 a3 a4 a5  a2 b2 b3 b4 b5

i=2 第二轮: a1 b1 a2 a4 a5  a3 b2 b3 b4 b5

i=3 第三轮: a1 b1 a2 b2 a5  a3 a4 b3 b4 b5

          : a1 b1 a2 b2 a3  a5 b3 a4 b4 b5

          : a1 b1 a2 b2 a3  b3 a5 a4 b4 b5
            
             a1 b1 a2 b2 a3  b3 a4 b4 a5 b5

我这方法确实是错的,O(2n),我再算算

论坛徽章:
1
午马
日期:2013-08-23 23:39:47
13 [报告]
发表于 2010-03-21 10:59 |只看该作者
回复  phy0077
举个例子

         a1 a2 a3 a4  b1 b2 b3 b4

i=1 第一轮: a1 b1 a3 a4  a2 b2 b3  ...
peidright 发表于 2010-03-21 10:43



    晕,说的是一套,举得例子又是另一套

论坛徽章:
0
14 [报告]
发表于 2010-03-21 11:13 |只看该作者
本帖最后由 peidright 于 2010-03-21 13:16 编辑

回复 10# phy0077

想了一下,这道题目从原理上,似乎很简单,但是用程序写出来,需要找规律。

(a1,a2,a3,....,an,b1,b2,bn....)*A1A2A3***************A2n = (a1,b1,a2,b2,........,an,bn)

Ai 是这样一个2n阶矩阵,满足 互换2n向量中几个元素的位置。

现在已经知道,有2n 这样的矩阵肯定可以满足这样的变换,现在要把这2n个矩阵两两组合,形成 n个矩阵,为了方便写程序,这n个矩阵有
这样的特性:
强一点的: 最好还是单个元素与单个元素之间的变换(看起来不可能)

弱一点的: 这n个矩阵,某种意义上是相似的,而且矩阵与矩阵之间,包含在这些矩阵之间的元素,是相同的。

。。。最终可能的表达式,。。现赖心把矩阵画出来。。。

论坛徽章:
0
15 [报告]
发表于 2010-03-21 12:33 |只看该作者
本帖最后由 peidright 于 2010-03-21 14:23 编辑

回复 13# phy0077 [/b]

晕,我上面O(2N)的方法都有问题,要重新思考了

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
16 [报告]
发表于 2010-03-21 14:11 |只看该作者
随便翻看了一篇论文,里面介绍的算法貌似也并非O(1)空间复杂度.

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
17 [报告]
发表于 2010-03-21 15:41 |只看该作者
logN次执行?

论坛徽章:
0
18 [报告]
发表于 2010-03-21 17:40 |只看该作者
如果数据是从文件中读入的,可以用两个文件指针,分别打开输入文件,并将第二个指针定位在b1,然后从两个指针交替地读数据再输出,输出序列即为a1, b1, ...., 。

论坛徽章:
0
19 [报告]
发表于 2010-03-21 19:29 |只看该作者
这个时间和空间复杂度是可以做到的。

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
20 [报告]
发表于 2010-03-24 15:54 |只看该作者

  1. #define N 10

  2. inline int fun(int i)
  3. {
  4. return (i<N)?(i*2):((i-N)*2+1);
  5. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP