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

网友投稿 274 2023-04-24


合并有序数组的实现(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

// 打印数组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

{

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语言实现合并有序数组的实例,如有疑问请留言或者到本站社区交流http://讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

{

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语言实现合并有序数组的实例,如有疑问请留言或者到本站社区交流http://讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:哪种接口属于数字接口设计(属于接口的是什么)
下一篇:枚举实现接口(枚举map)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~