首页 > 编程语言 > 详细

【算法】——排序:合并有序数组

时间:2020-02-24 18:51:54      阅读:78      评论:0      收藏:0      [点我收藏+]

题目表述:给定两个排序后的数组A和数组B,其中A的末端有足够的缓冲空间容纳B。编写一个方法,将B合并入A并排序

技术分享图片

#include<stdio.h>
void combine(int *a,int *b);
int len(int *a);
int main()
{
    int a[100]={1,4,9,11,13};
    int b[4]={3,7,20};
    int n=len(a)+len(b);
    int i;
    combine(a,b);
    for(i=0; i<n; i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
 } 
 void combine(int *a,int *b)
 {
     int current=len(a)+len(b)-1;//记录合并和数组的最后一个下标
    int p1=len(a)-1;
    int p2=len(b)-1;
    while(current!=0)
    {
        if(a[p1]>b[p2])
        {
            a[current]=a[p1];
            p1--;
        }
        else
        {
            a[current]=b[p2];
            p2--;
        }
        current--;
     } 
 }
 
 int len(int *a)
 {
     int i=0;
     while(a[i]!=\0)
     {
         i++;
     }
     return i;
 }

技术分享图片

【算法】——排序:合并有序数组

原文:https://www.cnblogs.com/jessie99/p/12358172.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!