合并有序数组的实现(java与C语言)

 更新时间:2017年08月01日 14:53:06   作者:姚_攀  
这篇文章主要介绍了合并有序数组的实现(java与C语言)的相关资料,这里对有序数组的合并分享了java版本和C语言版本的示例,需要的朋友可以参考下

合并有序数组的实现

java版本:

实例代码

public class Merge {

  //合并有序数组
  public static void mergeSort(int a[], int b[], int c[]) {
    int n = a.length, m = b.length;
    int i, j, k;
    i = j = k = 0;

    while (i < n && j < m) {
      if (a[i] < b[j]) {
        c[k++] = a[i++];
      } else {
        c[k++] = b[j++];
      }

    }
    while (i < n)
      c[k++] = a[i++];
    while (j < m)
      c[k++] = b[j++];
  }

  //打印数组中的元素
  public static void printArr(int a[]) {
    for (int i = 0; i < a.length; i++) {
      System.out.print(a[i] + "\t");
    }
  }

  public static void main(String[] args) {
    System.out.println("Hello World!");
    int[] a = new int[] { 1, 2, 5, 6 };
    int[] b = new int[] { 3, 8, 9, 10 };
    int c[] = new int[8];

    mergeSort(a, b, c);
    printArr(c);
  }
}

输出结果:

1  2  3  5  6  8  9  10

C语言版

实现代码:

#include <stdio.h>
// 打印数组a
void printArr(int a[],int n){
  for (int i = 0; i < n; ++i)
  {
    printf("%d\t",a[i]);
  }
  printf("\n");
}
//合并有序数组
void mergeArray(int a[],int n,int b[],int m,int c[]){
  int i, j, k; 

  i = j = k = 0; 
  while (i <n && j<m) 
  { 
    if (a[i] < b[j]) 
      c[k++] = a[i++]; 
    else 
      c[k++] = b[j++];  
  } 

  while (i < n) 
    c[k++] = a[i++]; 

  while (j < m) 
    c[k++] = b[j++]; 

}
int main(){
  int a[3]={2,3,6};
  int b[2]={1,5};
  int c[5]={};
  mergeArray(a,3,b,2,c);
  printArr(c,5);
}

输出结果:

yaopans-MacBook-Pro:algorithm yaopan$ ./a.out 
1  2  3  5  6

以上就是java与C语言实现合并有序数组的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Java封装公共Result结果返回类的实现

    Java封装公共Result结果返回类的实现

    在使用Java开发接口请求中,我们需要对请求进行进行统一返回值,这时候我们自己封装一个统一的Result返回类,本文主要介绍了Java封装公共Result结果返回类的实现,感兴趣的可以了解一下
    2023-01-01
  • SpringCloud与Dubbo集成Nacos时服务重复注册问题的分析与解决

    SpringCloud与Dubbo集成Nacos时服务重复注册问题的分析与解决

    Nacos作为阿里巴巴开源的服务注册与发现工具,广泛应用于Spring Cloud和Dubbo等微服务框架中,然而,在实际开发中,我们可能会遇到服务重复注册的问题,下面我们就来详细分析一下这一问题
    2025-03-03
  • Java 深入浅出讲解代理模式

    Java 深入浅出讲解代理模式

    代理模式是Java常见的设计模式之一。所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象
    2022-03-03
  • Java实现快速将HTML表格转换成Excel

    Java实现快速将HTML表格转换成Excel

    这篇文章主要为大家详细介绍一种使用Java的快速将Web中表格转换成Excel的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-05-05
  • Java实战项目 图书管理系统

    Java实战项目 图书管理系统

    这篇文章主要介绍了使用java SSM jsp mysql maven设计实现的精品图书管理系统,是一个很好的实例,对大家的学习和工作具有借鉴意义,建议收藏一下
    2021-09-09
  • Spring框架学习常用注解汇总

    Spring框架学习常用注解汇总

    这篇文章主要为大家介绍了Spring框架学习中一些经常用的注解汇总及示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • 关于java入门与java开发环境配置详细教程

    关于java入门与java开发环境配置详细教程

    这篇文章主要介绍了关于java入门与java开发环境配置详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • SpringBoot整合token实现登录认证的示例代码

    SpringBoot整合token实现登录认证的示例代码

    本文主要介绍了SpringBoot整合token实现登录认证的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Java语言实现简单FTP软件 FTP协议分析(1)

    Java语言实现简单FTP软件 FTP协议分析(1)

    这篇文章主要介绍了Java语言实现简单FTP软件的第一篇,针对FTP协议进行分析,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • log4j的配置文件详细解析

    log4j的配置文件详细解析

    以下小编主要为大家介绍一下log4j的配置文件各个配置项的含义。需要的朋友可以过来参考下
    2013-08-08

最新评论