- #include<stdio.h>
- #include<stdlib.h>
- void merge(int* nums1,int m,int *nums2,int n){
- int* arr=malloc(sizeof(int)*(m+n));
- int i=0;
- int j=0;
- int k=0;
- while (i<m && j<n){
- if(nums1[i]<nums2[j]){
- arr[k]=nums1[i];
- i++;
- }
- else{
- arr[k]=nums2[j];
- j++;
- }
- k++;
- }
- while(i<m){
- arr[k]=nums1[i];
- i++;k++;
- }
- while(j<n){
- arr[k]=nums2[j];
- j++;k++;
- }
- for(i=0;i<k;i++){
- nums1[i]=arr[i];
- }
- }
- void printArray(int *nums,int n){
- int i;
- for(i=0;i<n;i++){
- printf("%d",nums[i]);
- }
- printf("\n");
- }
- int main(){
- int nums1[100]={3,5,7,11,23};
- int nums2[4]={1,4,9,10};
- merge(nums1,5,nums2,4);
- printArray(nums1,9);
- return 0;
- }
并归排序
最新推荐文章于 2022-01-29 20:28:03 发布