Mitkashin

[C] Сортирање

Dec 10th, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void swap(int *arr, int i) {
  4.     int temp=*(arr+i);
  5.     *(arr+i)=*(arr+i+1);
  6.     *(arr+i+1)=temp;
  7. }
  8.  
  9. void sort(int *arr, int n) {
  10.     int i, j, swapped = 0;
  11.  
  12.     for( i = 0 ; i < n ; i++ )
  13.         for( j = 0 ; j < n-1 ; j++ )
  14.             if(arr[j] > arr[j+1])
  15.                 swap(arr, j);
  16. }
  17.  
  18. void merge(int *arr, int *arr2, int *arrend, int n) {
  19.     int i = 0, j = 0, k = 0, l;
  20.  
  21.     for( i=0 ; i < n&&j < n ; ) {
  22.         if (arr[i] < arr2[j])
  23.             arrend[k++] = arr[i++];
  24.         else
  25.             arrend[k++] = arr2[j++];
  26.     }
  27.  
  28.     if (i < n)
  29.         for (l = i; l < n; l++)
  30.             arrend[k++] = arr[l];
  31.     else
  32.         for (l = j; l < n; l++)
  33.             arrend[k++] = arr2[l];
  34. }
  35.  
  36. int main() {
  37.     int n, i;
  38.     int arr[400], arr2[400], arrend[400];
  39.     scanf("%d", &n);
  40.  
  41.     for(i = 0; i < n; ++i)
  42.         scanf("%d", &arr[i]);
  43.     for(i = 0; i < n; ++i)
  44.         scanf("%d", &arr2[i]);
  45.  
  46.     sort(arr, n);
  47.     sort(arr2, n);
  48.  
  49.     merge(arr, arr2, arrend, n);
  50.  
  51.     for(i = 0; i < 2 * n; ++i)
  52.         printf("%d ", arrend[i]);
  53.  
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment