今天晚上, 组合数学的全排列生成算法作业截止。然而, 根据队友进行性能测试得到的结果, 我实现的某些算法的运行时间在排列的元素个数n=13开始增长放缓, 且n=14的运行时间和n=13的时间几乎差不多。
经过思考, 我意识到这是因为我在整数和中介数互相转换的时候使用了int
, 在n≥13的时候, int
溢出了。因此, 无论n为多少, 算法最大都只能生成2Gi个排列, 运行时间也就都差不多了。将其换为unsigned long
, 问题解决。哈哈。
新手学电脑, 请多多包涵。
今天晚上, 组合数学的全排列生成算法作业截止。然而, 根据队友进行性能测试得到的结果, 我实现的某些算法的运行时间在排列的元素个数n=13开始增长放缓, 且n=14的运行时间和n=13的时间几乎差不多。
经过思考, 我意识到这是因为我在整数和中介数互相转换的时候使用了int
, 在n≥13的时候, int
溢出了。因此, 无论n为多少, 算法最大都只能生成2Gi个排列, 运行时间也就都差不多了。将其换为unsigned long
, 问题解决。哈哈。
新手学电脑, 请多多包涵。
本文链接:https://twd2.me/archives/16176
发表评论