合并两个排序的一半,无需额外的内存!

问题描述

| 给定一个整数数组,其前半部分和后半部分已排序。编写一个函数将两个部分合并以在原位置创建一个单个排序的数组(不要使用多余的空间)。 一种方法是 例如:     // 1,3,6,8,-5,-2,8
int l = 0;
int u = size;
int mid = (l+u)/2;
int i;
for (i = 0; i < mid; i++) {
  for (j = mid; j < size; j++) {
    if (a[i] >= a[j]) {
      temp = a[j];
      for (i = mid-1; i >= 0; i--)
        a[i+1] = a[i];
      a[0] = temp;
    }
  }
}
但我认为为此必须有一些O(n)算法。     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)