假设我们有三个数组
int a[]=new int[]{4,6,8,9,11,12};
int b[]=new int[]{3,5,7,13,14};
int c[]=new int[]{1,2,15,16,17};
我们想把它合并到一个大的d数组中,其中d.length=a.length+b.length+c.length
但是我们有内存问题,这意味着我们只需要使用这个d数组,我们应该合并这三个数组,当然我们可以使用合并排序,但是我们可以使用合并算法而不使用排序方法吗?就像两个排序的数组一样,我们可以合并成一个排序的数组,那么三个或更多的数组呢?
假设我们被赋予k个排序数组,每个数组都有n个元素,我们希望将它们组合成一个kn元素的数组。
My方法:我的方法是重复使用Merge子例程,first合并first两个数组,然后将结果与第三个数组合并,然后与第四个数组合并,直到我在kth和final输入数组中合并为止。我的问题是,作为k和n的函数,忽略常数因子和低阶项,这个连续合并算法的运行时间是多少?
合并子例程:
i := 1
j := 1
for k := 1 to n do
if C[i] <D [j] then
B[k] :=C[i]
i := i +1
else
B
我试图在不查看任何源代码的情况下实现mergesort。每当我尝试运行我的程序时,我都会得到这样的异常:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Mergesort.merge_halves(Mergesort.java:40)
at Mergesort.mergesort(Mergesort.java:31)
at Mergesort.mergesort(Mergesort.java:29)
at Mergesort.main(Mergesort.java:15)
下面
我在这个中有三个文件Shell-ijk-ArrayList.java、Shell-ijk-Vektor.java和Shell-ikj-ArrayList.java。我已经手动将它们“合并”到MatrixMultiplication.java中。现在我想摆脱其他三个,但我想保留它们的历史。做这件事最好的方法是什么?
我已经找到了,但是当我尝试
git merge-file MatrixMultiplication.java Shell-ijk-ArrayList.java Shell-ijk-Vektor.java
我得到了
error: Could not stat MatrixMultip