把有序序列B合并到有序序列A中,A的大小大于m+n。
特别的地方在于,不是返回一个新数组。
【思路】
可以开一个local数组,归并两串,再把结果赋给A。但不是很喜欢这种做法。(因为太简单了)
插入排序是把当前元素插入到前面已经有序的m个元素中,与题目环境很符合。
【other code】
void merge(int A[], int m, int B[], int n) { int i,j; if(m==0) for(i=0; i<n; i++) A[i]=B[i]; for(j=0; j<n; j++) { for(i=m-1+j; i>=0; i--) { if(A[i]>B[j]) A[i+1]=A[i]; else break; } A[i+1]=B[j]; } }
【总结】
插入排序是从后向前遍历,这是我总是不能掌握的地方_(:зゝ∠)_
时间: 2024-10-13 14:19:47