给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数?我是菜鸟,帮我详细列出解决方案

bluesky1年前 ⋅ 888 阅读
方案一:

1. 首先,将32位整数文件加载到内存中,然后使用快速排序或归并排序对其进行排序。

2. 然后,从头至尾遍历已排序的32位整数文件,以重新标记其中的所有整数。最大值为特定整数的最大可能值,例如32位最大值为4294967295(2^32-1)。

3. 接下来,遍历重新标记的数组,并且检查每个数字是否小于特定最大值,如果不是,则表明该数字不在文件中。

4. 最后,输出不在文件中的32位整数。

方案二:

1. 创建一个长度为32位最大值(4294967295)的布尔数组,并将所有项设置为False。

2. 遍历32位整数文件,将对应于每个整数的布尔值置为True。

3. 遍历该布尔数组,如果数字对应的布尔值为False,则表明该数字不在文件中。

4. 最后,输出不在文件中的32位整数。

全部评论: 0

    相关推荐