题解 | #合并两个有序的数组#
合并两个有序的数组
https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665
/**
*
* @param A int整型一维数组
* @param ALen int A数组长度
* @param B int整型一维数组
* @param BLen int B数组长度
* @return void
*/
void Sort(int* arr,int n)
{
int gap=n;
while(gap>1)
{
gap/=2;
for(int i=0;i<n-gap;i++)
{
int end=i;
int tmp=arr[end+gap];
while(end>=0)
{
if(arr[end]>tmp)
{
arr[end+gap]=arr[end];
end-=gap;
}
else
{
break;
}
}
arr[end+gap]=tmp;
}
}
}
void merge(int* A, int ALen, int m, int* B, int BLen, int n)
{
// write code here
//合并
for(int i=0;i<n;i++)
{
*(A+m+i)=*(B+i);
}
//排序
Sort(A,m+n);
}

查看10道真题和解析