标题:今天的周赛题,真的是听不懂,求教
只看楼主
ZeroKill
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-7-24
得分:0 
相邻两数交换,排成递增排序!我有一简单算法!算逆序数对!样例:
9
2
2
1
3
3
3
2
3
1
共9个数,前3个有(2,1)(2,1)两对;中间3个没有;后3个有(2,1)(3,1)两对,所有共有4对!输出4
如果每次求的数多的话,可用分治
2012-07-24 21:08
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
得分:0 
回复 71楼 ZeroKill
这不是相邻两数交换的,不是经典逆序问题,比如1,1,1,1,3,1,1,1请问要交换几次,本题只要1次。

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2012-07-25 19:11
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
很不好意思,忙了两天。真怀念学生时代啊,有大量的时间可以做自己想做的事。

施鹏过谦了,代码很工整。该怎么说,很职业化?这么说也不准确,总之充满了工业的味道。

比如SWAP参宏的定义方式。

比如意义明确的长变量名的使用。

比如条件判断中常量在前变量在后的写法(NULL==(store=(int *)malloc(1001*sizeof(int)))) 。

倒是学我的那行代码和整体风格有点不搭呵呵。

总体能够看出有良好的编码习惯。

一点小建议。两个参宏的定义还是有风险,最好给每个参数再加一层括号,STATE整体要再加一层括号。

随风的代码也很规矩,至于我的数组开1024,说实话我平时写代码也是如此。只要多余的部分不是太多,我还是愿意取2的幂次对齐。

本来我想将问题扩展到更大的范围,不过确实出了差错,分析中错将一个必要条件当作充分条件来使用了。

呵呵,这个问题还是很有意思的,有时间我会好好分析分析,目前我的结论确实只适合3种元素的情况,看来题目将元素种数设定为3种是有意义的。

关于序列的逆序数与最少交换次数之间的关系,这是我看到问题后首先想到的分析方向。它们之间应该有关系,但远不止ZeroKill想的那么简单。有兴趣的可以在这个方向下做点工作。

重剑无锋,大巧不工
2012-07-26 13:22
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
得分:0 
回复 73楼 beyondyf
哈哈,过奖了,其实定义宏的时候我就想要不要都加上括号避免边际效应,但是后面我使用的时候宏的时候参数的都是确定的数值,我就把括号去掉剩字节了,不过还是有1800+B,哎。

不管怎么说,宏加上括号要好很多,代码里交换的部分应该都可以用宏的,但是到后面自己写的宏自己都忘记用了。
2012-07-26 13:42
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
回复 74楼 demonleer
呵呵,缩短代码尺寸还是不要刻意为之的好。虽然我崇尚短码,但从不以牺牲代码可靠性和可读性换取。我的代码中有大量的空格以保证代码的清晰。

重剑无锋,大巧不工
2012-07-26 13:53
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
得分:0 
回复 75楼 beyondyf
嗯,这方面确实要多注意,这么干要不得
2012-07-26 13:55
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:0 
同意74楼观点

三十年河东,三十年河西,莫欺少年穷!
2013-03-24 20:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-373843-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041193 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved