2个预定义排序数组的MergeSort算法。制作1个排序数组。在C.

时间:2017-12-13 14:42:00

标签: c arrays mergesort

我有一个程序,其中2个各种阵列充满了自行车。现在我想从这两个预设数组中制作1个排序数组。我可以直接想到Mergesort方法,但是如果你在终端上输入一些内容,我仍然知道如何应用它。但是,我不知道如何用2个先前创建的数组做到这一点。也许有人有想法?

该功能应为:

void merge_arrays(Bike* bikes1, int n1, Bike* bikes2, int n2, Bike* bout) { 
//merge funktion
}

Bike * bikes1是第一批各种自行车和自行车*自行车2。在Bike * bout中,应输出已排序的数组。

除了信息:

在自行车中存储以下数据 凉爽,Wheelsize,齿轮,价格。

排序是根据第一个值,所以很酷。

这是我的实际功能

void merge_arrays(Bike* bikes1, int n1, Bike* bikes2, int n2, Bike* bout) {
    //void merge(int a[], int m, int b[], int n, int sorted[]) {
 int i, j, k;

  j = k = 0;

  for (i = 0; i < n1 + n2;) {
    if (j < n1 && k < n2) {
      if (bikes1 + j < bikes2 + k ) {
        bout [i] = bikes1 [j];
        j++;
      }
      else {
        bout [i] = bikes2 [k];
        k++;
      }
      i++;
    }
    else if (j == n1) {
      for (; i < n1 + n2;) {
        bout [i] = bikes2 [k];
        k++;
        i++;
      }
    }
    else {
      for (; i < n1 + n2;) {
        bout [i] = bikes1 [j];
        j++;
        i++;
      }
    }

  }


}

它返回数组但没有排序..

输出:

Output

0 个答案:

没有答案