首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

#ram

這配置夠discuz X 500人在線嗎?

如何在1 MB RAM中对100万个8位数字进行排序?

akjok54stay hungry stay foolish
PS:由于编码值所需的位数取决于先前编码的值,因此这种证明可能是不重要的。经验上可能遇到的最大编码大小是任意1011732选择缓冲区大小1013000。 typedef unsigned int u32; namespace WorkArea { static const u32 circularSize = 253250; u32 circular[circularSize] = { 0 }; // consumes 1013000 bytes static const u32 stageSize = 8000; u32 stage[stageSize]; // consumes 32000 bytes ... 总之,这两个阵列需要1045000个字节的存储空间。剩下的变量和堆栈空间剩下1048576 - 1045000 - 2×1024 = 1528字节。 它至少在我的Xeon W3520上运行了23秒。您可以使用下面的Python脚本来验证程序是否工作,假定程序名为sort1mb.exe。 from subprocess import * import random sequence = [random.randint(0, 99999999) for i in xrange(1000000)] sorter = Popen('sort1mb.exe', stdin=PIPE, stdout=PIPE) for value in sequence: sorter.stdin.write('%08d\n' % value) sorter.stdin.close() result = [int(line) for line in sorter.stdout] print('OK!' if result == sorted(sequence) else 'Error!')... 展开详请
领券
http://www.vxiaotou.com