Skip to main content

Write a c program for Merge short.

Solution:
#include <stdio.h>
#include<conio.h>
#define max 10

int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 };
int b[11];

void merging(int low, int mid, int high) {
   int l1, l2, i;

   l1 = low;
   l2 = mid + 1;
   for(i = low; l1 <= mid && l2 <= high; i++) {
      if(a[l1] <= a[l2])
      {
b[i] = a[l1];
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");
   
   for(i = 0; i <= max; i++)
      printf("%d ", a[i]);

   sort(0, max);

   printf("\nList after sorting\n");
   
   for(i = 0; i <= max; i++)
      printf("%d ", a[i]);
      getch();
}

Comments

Popular posts from this blog

2D transformation for reflection in C program (Computer Graphics).

Program: #include<stdio.h> #include<conio.h> #include<graphics.h> #include<stdlib.h> void refx(int x1,int x2,int x3,int y1,int y2,int y3){ line(320,0,320,430); line(0,240,640,240); x1=(320-x1)+320; x2=(320-x2)+320; x3=(320-x3)+320; line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); } void refy(int x1,int x2,int x3,int y1,int y2,int y3){ line(320,0,320,430); line(0,240,640,240); y1=(240-y1)+240; y2=(240-y2)+240; y3=(240-y3)+240; line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); } void main() { int gd=DETECT,gm; int x1,y1,x2,y2,x3,y3; clrscr(); initgraph(&gd,&gm,"c://turboc3//bgi"); line(320,0,320,430); line(0,240,640,240); x1=150;y1=100; x2=220;y2=220; x3=220;y3=110; line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); getch(); refx(x1,x2,x3,y1,y2,y3); getch(); refy(x1,x2,x3,y1,y2,y3); getch(); closegraph(); }

2D transformation for Rotation in C programming (Computer Graphics).

Program: #include <math.h> #include<stdio.h> #include <conio.h> #include <graphics.h> void main() { int gd=DETECT,gm,x1,x2,y1,y2,x4,y4; float angle=0.0,ang; initgraph(&gd,&gm,"C:\\turboc3\\BGI"); printf("Enter Co-ordinates:"); scanf("%d%d%d%d",&x1,&y1,&x2,&y2); line(x1,y1,x2,y2); printf("Enter the angle:"); scanf("%f",&ang); angle=(ang*3.14)/180; x4=x2-(((x2-x1)*cos(angle))-((y2-y1)*sin(angle))); y4=y2-(((x2-x1)*sin(angle))+((y2-y1)*cos(angle))); line(x2,y2,x4,y4); getch(); closegraph(); }

Write a C program for binary search in sorted array.

Solution: #include <stdio.h> int main() {    int c, first, last, middle, n, search, array[100];    printf("Enter number of elements\n");    scanf("%d",&n);    printf("Enter %d integers\n", n);    for (c = 0; c < n; c++)    {       scanf("%d",&array[c]);    }    printf("Enter value to find\n");    scanf("%d", &search);    first = 0;    last = n - 1;    middle = (first+last)/2;    while (first <= last)    {       if (array[middle] < search)       { first = middle + 1;       }       else if (array[middle] == search)       { printf("%d found at location %d.\n", search, middle); break;       }       else last = middle - 1; //       printf("%d\n",middle);       middle = (first + last)/2;   //     printf("%d\n",middle);    }    if (first > last)       printf("Not found! %d is not present in the list.\n", search);