很不好意思,忙了两天。真怀念学生时代啊,有大量的时间可以做自己想做的事。
施鹏过谦了,代码很工整。该怎么说,很职业化?这么说也不准确,总之充满了工业的味道。
比如SWAP参宏的定义方式。
比如意义明确的长变量名的使用。
比如条件判断中常量在前变量在后的写法(NULL==(store=(int *)malloc(1001*sizeof(int)))) 。
倒是学我的那行代码和整体风格有点不搭呵呵。
总体能够看出有良好的编码习惯。
一点小建议。两个参宏的定义还是有风险,最好给每个参数再加一层括号,STATE整体要再加一层括号。
随风的代码也很规矩,至于我的数组开1024,说实话我平时写代码也是如此。只要多余的部分不是太多,我还是愿意取2的幂次对齐。
本来我想将问题扩展到更大的范围,不过确实出了差错,分析中错将一个必要条件当作充分条件来使用了。
呵呵,这个问题还是很有意思的,有时间我会好好分析分析,目前我的结论确实只适合3种元素的情况,看来题目将元素种数设定为3种是有意义的。
关于序列的逆序数与最少交换次数之间的关系,这是我看到问题后首先想到的分析方向。它们之间应该有关系,但远不止ZeroKill想的那么简单。有兴趣的可以在这个方向下做点工作。