合并两个有序数组

#include "head.h"

int* mergeTwoSeqArr(int* a,int la,int* b,int lb){
	int i = 0,j=0;
	int *stack = (int*)malloc(sizeof(int)*(la+lb));
	int top = 0;
	while(i<la&&j<lb){
		if(a[i]<=b[j]){
			stack[top++] = a[i++];
		}else {
			stack[top++] = b[j++];
		}
	}
	while(i<la){
		stack[top++] = a[i++];
	}
	while(j<lb){
		stack[top++] = b[j++];
	}
	return stack;
}


int main(){
	int min = 1,max = 100,la = 10,lb = 20;
	int* arr1 = getAscendArr(min,max,la);
	int* arr2 = getAscendArr(min,max,lb);
	int* r = NULL;
	displayArr(arr1,la);
	displayArr(arr2,lb);
	r = mergeTwoSeqArr(arr1,la,arr2,lb);
	displayArr(r,la+lb);
	return 0;
}

  

原文地址:https://www.cnblogs.com/czsblog/p/11592805.html