合并两个有序数组
合并两个有序的数组
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++; } } };