合并有序數組的實現(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語言實現合并有序數組的實例,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
您可能感興趣的文章:
相關文章
java使用poi在excel單元格添加超鏈接設置字體顏色的方法
這篇文章主要介紹了java使用poi在excel單元格添加超鏈接,設置字體顏色,poi功能還是很強大的,基本能想到的功能都能通過poi實現,本文結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-09-09Java中CyclicBarrier和CountDownLatch的用法與區(qū)別
CyclicBarrier和CountDownLatch這兩個工具都是在java.util.concurrent包下,并且平時很多場景都會使用到。本文將會對兩者進行分析,記錄他們的用法和區(qū)別,感興趣的可以了解一下2021-08-08