日期:2014-05-20  浏览次数:20722 次

快速排序时一个很奇怪的堆栈溢出问题

昨天我自己写了一个快速排序法(用递归),在对数组进行排序的时候,发现数组长度超出6046会造成堆栈溢出。在我一个朋友的机器上运行也是这样。

但是当我今天再测试的时候,发现数组长度超出6043就溢出了,我并没有修改代码。我在群里发给另一个朋友测试,他的结果是数组长度在6046时溢出。我重启了计算机再次运行,还是当数组长度超出6043时溢出,这到底是怎么回事?我很迷惑。

我知道溢出跟这个算法的设计有关系,但我现在想知道的是为什么不同机器上的运行结果不同。在同一台机器上,隔了一天时间,运行结果居然变了,这到底是为什么?代码绝对没有变化,这一点我敢肯定。


------解决方案--------------------
这问题和机器有点关系,但你这个也太假了, 隔一天就两个结果
很奇怪!