Monday, March 14, 2016

BUBBLE SORTING

/*BUBBLE SORTING WITH GRAPHICAL REPRESENTATION*/


#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
void object(int,int,int);
void bubble(int);
void flow(int,int);
void mixing(int,int);
int a[10];
void main()
{
 int n,i,gd=0,gm=0;
 clrscr();
 printf("Enter the No of Elements : " );
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
  printf("Enter the %d Element : ",i+1);
  scanf("%d",&a[i]);
 }
 initgraph(&gd,&gm,"c://tc//bgi");
 settextstyle(3,0,1);
 outtextxy(250,50,"GIVEN NUMBER");
 for(i=0;i<n;i++)
 {
  object(100+i*50,150,a[i]);
  getch();
 }
 bubble(n);
/* for(i=0;i<n;i++)
 {
  object(100+i*50,350,a[i]);
  getch();
 }*/delay(500);
 settextstyle(3,0,2);
 outtextxy(400,400,"prepared by rishabh");
 getch();
}
void bubble(int n)
{
 int i,j,temp;

 for(i=0;i<n;i++)
  for(j=i;j<n-1;j++)
   if(a[i]>a[j+1])
   {
    flow(i,j+1);
    temp=a[i];
    a[i]=a[j+1];
    a[j+1]=temp;
   }
}
void object(int x,int y,int no)
{
 char s[8];
 sprintf(s,"%d",no);
 circle(x,y,15);
 settextstyle(2,0,6);
 outtextxy(x-3,y-10,s);
}
void flow(int f,int s)
{
 int i;
 for(i=0;i<50;i++)
 {
  setcolor(WHITE);
  object(100+f*50,150+i*4,a[f]);
  delay(15);
  setcolor(0);
  object(100+f*50,150+i*4,a[f]);
 }
 setcolor(WHITE);
 object(100+f*50,150+i*4,a[f]);
 for(i=0;i<50;i++)
 {
  setcolor(WHITE);
  object(100+s*50,150+i*4,a[s]);
  delay(10);
  setcolor(0);
  object(100+s*50,150+i*4,a[s]);
 }
 setcolor(WHITE);
 object(100+s*50,150+i*4,a[s]);
 mixing(f,s);
 for(i=50;i>0;i--)
 {
  setcolor(WHITE);
  object(100+f*50,150+i*4,a[s]);
  delay(10);
  setcolor(0);
  object(100+f*50,150+i*4,a[s]);
 }
 setcolor(WHITE);
 object(100+f*50,150+i*4,a[s]);
 for(i=50;i>0;i--)
 {
  setcolor(WHITE);
  object(100+s*50,150+i*4,a[f]);
  delay(15);
  setcolor(0);
  object(100+s*50,150+i*4,a[f]);
 }
 setcolor(WHITE);
 object(100+s*50,150+i*4,a[f]);
}
void mixing(int f,int s)
{
 int i;
 for(i=0;i<(s-f)*50;i++)
 {
  setcolor(WHITE);
  object(100+f*50+i,350,a[f]);
  object(100+s*50-i,350,a[s]);
  delay(20);
  setcolor(0);
  object(100+f*50+i,350,a[f]);
  object(100+s*50-i,350,a[s]);
  }
  setcolor(WHITE);
  object(100+f*50+i,350,a[f]);
  object(100+s*50-i,350,a[s]);

}




No comments:

Post a Comment