合并两个有序数组
合并两个有序的数组
http://www.nowcoder.com/questionTerminal/89865d4375634fc484f3a24b7fe65665
使用插入排序的思想,首先创建简单的交换函数swap,然后每次读取数组B中一个元素,并与A中元素从后向前依次比较。如果小于前面的元素,则进行交换,否则break。直到结束。
class Solution{
public:
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void merge(int A[], int m, int B[], int n)
{
for(int i=0; i<n; i++)
{
A[m] = B[i];
for(int j=m-1; j>=0; j--)
{
if(A[j] > A[j+1]) swap(&A[j], &A[j+1]);
else break;
}
m++;
}
}
};
查看1道真题和解析
携程公司氛围 125人发布