【发布时间】:2015-12-30 11:29:00
【问题描述】:
我在 www.hackerrank.com 上做一个问题,我已经被困了好几天了。
这是问题https://www.hackerrank.com/challenges/insertion-sort的陈述。基本上,我必须计算在 O(nlog(n)) 时间内给定数组的插入排序中发生了多少交换。
http://paste.ubuntu.com/12637144/这是我提交的代码。我使用归并排序并计算每个元素移位的次数。该代码通过了该站点一半以上的测试。当它失败时它不会超时,并且它没有编译错误或分段错误。
此外,当我得到一个失败的测试用例的输入时(这是它在网站上失败的输入 http://paste.ubuntu.com/12637165/)并用我的代码http://paste.ubuntu.com/12637127/ 的这种变体对其进行了测试,它实际上运行了插入排序算法计算沿途的交换次数并将其与合并排序计数进行检查,我通过了所有测试。另外,我已经生成了数千个随机测试用例,并且它们也都通过了这个测试。
我不认为这对网站来说是个问题,因为在讨论这个问题时,其他人似乎都顺利通过了测试,没有任何问题或抱怨。所以也许我误解了这个问题,或者我只是为算法错误地编写了算法和测试用例。有人有什么建议吗?
【问题讨论】:
标签: c algorithm sorting mergesort insertion-sort