每天一个小程序(20)——2路归并排序

来源:互联网 发布:厨房装修风格软件 编辑:程序博客网 时间:2024/06/05 17:44

归并排序就是将2个或多个有序表归并成一个新的有序表

基本思想:

顺序比较两者的相应元素,小者移入另一表中,反复如此,直至其中任一表都移入另一表为止。


void merge(datatype a[], datatype b[], datatype c[], int m, int n){int i = 1, j = 1, k = 1;while(i <= m && j <= n){if(a[i].key <= b[j].key){c[k] = a[i];i++;k++;}else{c[k] = b[j];j++;k++;}}while(i <= m){c[k] = a[i];i++;k++;}while(j <= n){c[k] = a[j];j++;k++;}k = k - 1;}


0 0
原创粉丝点击