void merge(int* nums1, int m, int* nums2, int n){
// 类似于归并排序 , 可以取大从后往前放
int end1= 2;
int end2= 2;
int end = 5;
while (end1 >= 0 && end2 >= 0) // 末尾的数据进行比较 有一个为比较完就退出
{
if(nums1[end1] > nums2[end2])
{
nums1[end]=nums1[end1];
end1--;
end--;
}
else
{
nums1[end]=nums2[end2];
end2--;
end--;
}
}
// nums2 的end2 走完 将数据全部放到num1中 不需要进行处理
// nums1 的end1 走完 nums2中还有数据, 将nums2中的数据放到nums1中
while (end2>=0)
{
nums1[end]=nums2[end2];
end2--;
end--;
}
}
int main(int argc, char const *argv[])
{
int nums1[6] = {1,2,3,0,0,0};
int nums2[3] = {2,5,6};
merge(nums1,6,nums2,3);
for (size_t i = 0; i < 6; i++)
{
printf("%d",nums1[i]);
}
return 0;
}