这是我用C语言编写的合并排序代码。我不能理解这里的问题是什么。我对指针的了解不是很多。merge函数接受2个数组并合并它们。排序函数是一个递归函数,用于对数组进行排序。
int * merge(int *fir, int n, int *sec, int m){
int res[m+n];
int x=0, y=0;
for(int i = 0; i < m+n; i++){
if(*(fir+x)<=*(sec+y)){
res[i] = *(fir+x);
x++;
}els
我试着编码MergeSort。但是我的代码看起来与著名的MergeSort实现非常不同。所以我想知道,我的实现是否正确。我的算法采用两个int数组(每个数组都是排序的),并将它们放入一个排序的大数组中。我的算法的渐近复杂度是多少?非常感谢!!
public static int[] myMergeSort(int[] array, int[] array2) {
int[] giveback = new int[array.length + array2.length];
int i = 0;
int j = 0;
for (int x = 0; x &l
我的任务是编写一个叫做quadSort的递归方法,它将一个数组分成4个部分,按quadSort排序,然后前两个(A和B)合并成一个数组(X),后两个(C和D)合并成一个(Y),然后这两个合并成一个。quadSort应该调用quadSort() 4次(每个部分一次)。我的问题是,我已经完成了基本用例,但我不知道如何编写方法的递归部分。有没有人能帮我理解一下怎么做,或者给我举个例子?提前谢谢。
编辑:这是我的尝试
public static void quadSort(int array[], int index, int length){
for (int i = 1; i&l
假设我们被赋予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
我正在阅读罗伯特·塞奇威克( Robert )的C++算法中的合并排序,并有以下问题。
static void mergeAB(ITEM[] c, int cl, ITEM[] a, int al, int ar, ITEM[] b, int bl, int br )
{
int i = al, j = bl;
for (int k = cl; k < cl+ar-al+br-bl+1; k++)
{
if (i > ar) { c[k] = b[j++]; continue; }
if (j > br) { c[k]
用例:比如说在Matplotlib中绘图。
import numpy as np
orig = np.arange(0, 30 + 0.5, 0.5)
extra = orig - 0.01 # I'm interested in a few extra values
x = np.???(orig, extra)
我想要的是以某种方式合并(我猜当前用例也需要一个排序)这两个数组(并不总是大小相同),以便我可以在后续的绘图中使用它?
我正在尝试打印字符数组中的每个元素。
为什么我会得到一个IllegalFormatConversionException
public class printf_function_test {
public static void main(String[] args) {
int any = 5;
String object = "car";
char[] ch = {'3','5','6','9'};
System.out.pri
假设我们有三个数组
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数组,我们应该合并这三个数组,当然我们可以使用合并排序,但是我们可以使用合并算法而不使用排序方法吗?就像两个排序的数组一样,我们可以合并成一个排序的数组,那么三个或更多的数组呢?