1795 合并排序
来源:互联网 发布:三星25nm闪存 知乎 编辑:程序博客网 时间:2024/06/08 00:06
给出两个集合A、B,元素以升序排列,要求用两个链表LA、LB分别储存A、
B,求出这两个集合的并,以升序存储于链表LC中。
- 输入
多组数据
对于每组数据,第一行是A、B中元素的个数m、n,以下两行分别以单调上
升的顺序给出A、B中的各个元素(A、B中各元素不重复)。
数据以0 0结束。- 输出
对于每组数据,升序输出LC中各元素,以空格分开,结尾换行。
经典排序算法
#include <stdio.h> #include <stdlib.h> int a[100000],b[100000],c[200000];void mergeSort(int number1[], int M, int number2[], int N, int number3[]) { int i = 0, j = 0, k = 0; while(i < M && j < N){ if(number1[i] <= number2[j]) number3[k++] = number1[i++]; else number3[k++] = number2[j++]; } while(i < M) number3[k++] = number1[i++]; while(j < N) number3[k++] = number2[j++];} int main() { int number1,number2;int i;scanf("%d %d",&number1,&number2);while(!(number1==0&&number2==0)){for(i=0;i<number1;i++)scanf("%d",&a[i]);for(i=0;i<number2;i++)scanf("%d",&b[i]);mergeSort(a, number1, b, number2, c); for(i = 0; i < number1+number2-1; i++) printf("%d ", c[i]); printf("%d\n",c[number1+number2-1]); scanf("%d %d",&number1,&number2);}return 0; }
- 1795 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- VMware Workstation 7.1.4序列号:
- 【翻译WINDOWS NT FILE SYSTEM INTERNAL】NT缓存管理器一(6)
- 颜色值
- 1781 欧几里德游戏
- abstract 抽象类与抽象方法
- 1795 合并排序
- ACM训练表
- 1796 猜数字看人品
- Objective-C 属性特性(assign , retain , copy , readonly , readwrite , atomic , nonatomic)
- 经典的内存对齐问题
- 【翻译WINDOWS NT FILE SYSTEM INTERNAL】NT缓存管理器一(7)
- 1797 Vito's family
- Linux常用命令手记(续)
- 1798 分牌