鱼C论坛

 找回密码
 立即注册
查看: 2240|回复: 5

求任意两个有序一维数组的合并

[复制链接]
发表于 2014-6-19 14:24:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大家帮忙写写!!!谢谢了!!!

就这个

就这个

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-19 14:59:07 | 显示全部楼层
简单实现一下,没有想太多
#include<stdio.h>

int main()
{
    int a[5]={2,4,9,12,23};
    int b[9]={1,4,5,6,11,14,25,26,27};
    int c[14]={0};
    int i=0,j=0,n=0;
    while(i<5||j<9){
        if(i<5&&a[i]<=b[j]){
            c[n]=a[i];
            i++;
        }
        else if(j<9){
            c[n]=b[j];
            j++;
        }
        n++;
    }
    for(i=0;i<14;i++){
        printf("%d ",c[i]);
    }
    printf("\n");
    return 0;
}
[/i][/i][/i]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-19 15:01:25 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-19 15:05:47 | 显示全部楼层
爱上她_不过一场 发表于 2014-6-19 15:01
任意的两个!!!

额,我都说了是简单实现了一下,主要是一个思路,像那种输入任意有序数组的实现有什么意思....你自己for循环输入吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-19 19:50:35 | 显示全部楼层
本帖最后由 ravenhu13 于 2014-6-19 19:52 编辑

支持任意两个数组,并且可以无序化。
#include "stdafx.h"
#include "stdio.h"
#include <string.h>
#include <crtdbg.h>
#include <malloc.h>

//int a[5]={2,4,9,12,23};
//int b[9]={1,4,5,6,11,14,25,26,27};

int a[5]={7,4,13,12,23};
int b[9]={18,4,5,6,11,14,25,26,27};

int _tmain(int argc, _TCHAR* argv[])
{
        int                a_size = sizeof(a)/sizeof(int);
        int                b_size = sizeof(b)/sizeof(int);
        int                size = a_size + b_size;
        int *s = (int*)malloc(size);
        int *p;
        p = s;

        for (int i=0;i<a_size;i++)
        {
                p[i] = a[i];
        }
        p = p + a_size;
        for ( i=0;i<b_size;i++)
        {
                p[i] = b[i];
        }
        int                temp;
        int                j;
        for (int i = 0;i<size;i++)
        {
                for ( j=i+1;j<size;j++)
                {
                        if (s[i]>s[j])
                        {
                                temp = s[i];
                                s[i] = s[j];
                                s[j] = temp;
                        }
                }
        }

        for ( i=0;i<size;i++)
        {
                printf("%d,",s[i]);
        }
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-19 20:39:28 | 显示全部楼层
ravenhu13 发表于 2014-6-19 19:50
支持任意两个数组,并且可以无序化。

恩恩!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-28 04:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表