c语言解决合并两个有序数组-剑指offer
一,思维导图

二,具体代码
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){ int nu1=m-1; int nu2=n-1; while(nu2>=0&&nu1>=0) { if(nu1>nu2) //考虑m>n的情况 { nums1[nu1+nu2+1]=nums2[nu2]; nu2--; } else //考虑m=n { nums1[nu1+nu2+1]=nums1[nu1]; nu1--; } } while(nu2>=0)//考虑m为空,n>0 { nums1[nu1+nu2+1]=nums2[nu2]; nu2--; } for(int a=0;a<m+n-1;a++) { for(int b=0;b<m+n-a-1;b++) { if(nums1[b]>nums1[b+1]) { int temp=0; temp=nums1[b]; nums1[b]=nums1[b+1]; nums1[b+1]=temp; } } } }
本文来自博客园,作者:ETTA-7,转载请注明原文链接:https://www.cnblogs.com/etta-7/

浙公网安备 33010602011771号