Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define max 10
- int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 };
- int b[10];
- void merging(int low, int mid, int high) {
- int l1, l2, i;
- for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) {
- if(a[l1] <= a[l2])
- b[i] = a[l1++];
- else
- b[i] = a[l2++];
- }
- while(l1 <= mid)
- b[i++] = a[l1++];
- while(l2 <= high)
- b[i++] = a[l2++];
- for(i = low; i <= high; i++)
- a[i] = b[i];
- }
- void sort(int low, int high) {
- int mid;
- if(low < high) {
- mid = (low + high) / 2;
- sort(low, mid);
- sort(mid+1, high);
- merging(low, mid, high);
- } else {
- return;
- }
- }
- int main() {
- int i;
- printf("List before sorting\n\n");
- for(i = 0; i <= max; i++)
- printf("%d ", a[i]);
- sort(0, max);
- printf("\n\nList after sorting\n\n");
- for(i = 0; i <= max; i++)
- printf("%d ", a[i]);
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement