Arrays 考虑到时间复杂性,如何将两个未排序的数组合并到另一个数组中

Arrays 考虑到时间复杂性,如何将两个未排序的数组合并到另一个数组中,arrays,sorting,time-complexity,Arrays,Sorting,Time Complexity,我有两个或更多阵列。我想形成一个新的数组,它是从两个或多个数组中排序的。 我不想把数组和以后的排序结合起来。我想让它走起来。 考虑了时间复杂度 任何编程语言/算法都很好。因此基本上需要为新数组中的每个位置找到最小的剩余值。 输入是包含n和m个元素的数组a和b。在两个数组中查找最小值。比较这两个值,并将较小的值设置为其数组中的最大值,以防止再次找到该值。用c设置最小值 伪代码: merge(a[n],b[m]){ c[n+m]; for (i = 0, i < n+m; i++){

我有两个或更多阵列。我想形成一个新的数组,它是从两个或多个数组中排序的。 我不想把数组和以后的排序结合起来。我想让它走起来。 考虑了时间复杂度


任何编程语言/算法都很好。

因此基本上需要为新数组中的每个位置找到最小的剩余值。 输入是包含n和m个元素的数组a和b。在两个数组中查找最小值。比较这两个值,并将较小的值设置为其数组中的最大值,以防止再次找到该值。用c设置最小值

伪代码:

merge(a[n],b[m]){
  c[n+m];
  for (i = 0, i < n+m; i++){
    aMin = getMinValue(a);
    bMin = getMinValue(b);
    if(aMin < bMin) setMinValueToMax(a,aMin)
    else setMinValueToMax(b,bMin)
    c[i] = min(aMin,bMin)
  }
  return c;
}
merge(a[n],b[m]){
c[n+m];
对于(i=0,i
这里n是较大数组的大小。 GetMinValue将在O(n)中运行,只需迭代所有元素。如果不保存索引,SetMinValueToMax也将在O(n)中运行。for循环将处于O(n)状态。for的主体是0(3n)(2 x getMinValue+setMinValueToMax)。在大的O常数中,可以删除导致O(n^2)运行时的因子