我真的很想得到你对以下问题的帮助。
我需要从两个两个二进制文件中读取N个整数(二进制格式) ,并在O(nlogn)时间内将所有常见整数(再次以二进制格式)写入另一个输出文件。
这是我想要做的草图:
1-我知道我不能使用fscanf
with %d
,因为这些不是文本文件,但是因为我知道每个文件中有 N 个数字,所以我想在“for”循环中运行 N 次并且
for (i=0; i<N; i++) {
fread(&int1, 4, 1, file1);
fread(&int2, 4, 1, file2);
arr1[i]=int1;
arr2[i]=int2;
}
在哪里arr1
,arr2
每个都是 N 大小的 int 数组,这是正确的吗?如果我知道有 N 个整数,其中每个整数由 4 位表示,我会在文件末尾完成,是吗?
2-我想qsort
用步骤对每个数组进行排序nlogn
,但是我应该如何在仍然 nlogn 步骤的情况下比较两者?我没有找到任何聪明的方法。