Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void quick_sort(int*, int, int);
- void merge(int *, int , int *, int , int *, int );
- void swap(int *, int *);
- int main()
- {
- int golA, golB, golC, i;
- scanf("%d %d", &golA, &golB);
- int a[golA], b[golB];
- for(i = 0; i < golA; ++i) {
- scanf("%d", &a[i]);
- }
- for(i = 0; i < golB; ++i) {
- scanf("%d", &b[i]);
- }
- golC = golA+golB;
- int c[golC];
- quick_sort(a, 0, golA-1);
- quick_sort(b, 0, golB-1);
- merge(a, golA, b, golB, c, 0);
- quick_sort(c, 0, golC-1);
- printf("\n");
- for(i = 0; i < golC; ++i) {
- printf("%d ", c[i]);
- }
- return 0;
- }
- void merge(int *a, int golA, int *b, int golB, int *c, int i) {
- if(i < golA+golB) {
- if(i < golA) c[i] = a[i];
- else c[i] = b[i-golA];
- merge(a, golA, b, golB, c, i+1);
- } else return;
- }
- void quick_sort(int *niza, int start, int end) {
- if(start < end) {
- int i = start-1;
- int j = start;
- int pivot = end;
- for(;j <= end; j++) {
- if(niza[j] <= niza[pivot]) {
- i++;
- swap(&niza[i], &niza[j]);
- }
- }
- quick_sort(niza, start, i-1);
- quick_sort(niza, i+1, end);
- }
- }
- void swap(int *a, int *b) {
- int temp = *a;
- *a = *b;
- *b = temp;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement