相关疑难解决方法(0)

Python分段错误?

这会产生一个Segmentation Fault: 11,我不知道为什么.

在我进入之前,这是代码:

import numpy.random as nprnd
import heapq
import sys

sys.setrecursionlimit(10**6)


def rlist(size, limit_low, limit_high):
    for _ in xrange(size): 
        yield nprnd.randint(limit_low, limit_high)

def iterator_mergesort(iterator, size):
    return heapq.merge(
         iterator_mergesort(
           (iterator.__next__ for _ in xrange(size/2)), size/2),
         iterator_mergesort(
            iterator, size - (size/2))
       )

def test():
    size = 10**3
    randomiterator = rlist(size, 0, size)
    sortediterator = iterator_mergesort(randomiterator, size)
    assert sortediterator == sorted(randomiterator)

if __name__ == '__main__':
    test()
Run Code Online (Sandbox Code Playgroud)

基本上,它只是一个mergesort,它适用于迭代器和生成器表达式,而不是在列表上工作,以便在任何时候最小化内存占用.它没什么特别的,并使用heapq.merge()内置方法来合并迭代器,所以当一切都中断时我很惊讶.

快速运行代码Segmentation Fault: 11并给出一个错误窗口告诉我python崩溃了.我不知道在哪里看或如何调试这个,所以任何帮助将不胜感激.

python mergesort python-2.7

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

mergesort ×1

python ×1

python-2.7 ×1