问题描述
|
给定一个整数数组,其前半部分和后半部分已排序。编写一个函数将两个部分合并以在原位置创建一个单个排序的数组(不要使用多余的空间)。
一种方法是
例如:
// 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 (将#修改为@)