【发布时间】:2012-07-17 22:04:10
【问题描述】:
非常希望您能帮助我解决以下问题。
我需要从两个 两个二进制文件中读取 N 个整数(二进制格式),并将所有常见整数写入另一个输出文件(再次以二进制格式) O(nlogn) 时间。
这是我想做的事情的草图:
1-我知道我不能将fscanf 与%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 步骤的情况下比较两者?我没有找到任何聪明的方法。
【问题讨论】:
-
第二部分我可以帮你。分别对 2 个数组进行排序,然后使用合并排序中的合并过程在 O(n) 时间内将它们组合成一个排序数组。 qsort(arr1) , qsort(arr2) , 合并(arr1,arr2) 。如果您需要代码方面的帮助,请联系我。
标签: c string binary binaryfiles