时间:2021-05-19
合并有序数组的实现
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); }}输出结果:
C语言版
实现代码:
#include <stdio.h>// 打印数组avoid 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);}输出结果:
以上就是java与C语言实现合并有序数组的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
归并算法之有序数组合并算法实现一个简单的有序数组合并算法:写一个函数,传入2个有序的整数数组,返回一个有序的整数数组。实现相当简单,创建一个长度为这两个长度之和
归并排序思路:将数组不断二分,然后合并为有序数组C++实现:voidmergeSort(Tarr[],intleft,intright){//对arr[left
本文实例讲述了C语言实现在数组A上有序合并数组B的方法,分享给大家供大家参考。具体分析如下:题目:数组A和数组B均有序,数组A有足够大内存来容纳数组B,将数组B
C语言数据结构之顺序数组的实现以下为展示顺序数组的示例:1.用C语言实现的版本#include#include/*flo
一、概述有序数组中常常用到二分查找,能提高查找的速度。今天,我们用顺序查找和二分查找实现数组的增删改查。二、有序数组的优缺点优点:查找速度比无序数组快多了缺点: