import java.awt.* ;
import java.applet.* ;
{
int n= 5 ; //Size of Array
int i,d= 0 ,m= 0 ,z,t;
int el[ ] = { 5 ,6 ,7 ,2 ,1 } ; // Entered Elements
public void init( )
{
setBackground
( Color .
black ) ; }
public void start( )
{
t.start ( ) ;
}
public void run( )
{ }
{
g.setFont ( f1) ;
g.drawLine ( 370 ,0 ,370 ,400 ) ;
g.drawString ( "Applet on Visual Bubble Sort" ,400 ,100 ) ;
f1
= new Font ( "Times New Roman" ,
Font .
PLAIN ,
17 ) ; g.setFont ( f1) ;
g.
setColor ( Color .
yellow ) ; g.drawString ( "developed by" ,400 ,200 ) ;
g.drawString ( "Siddesh Tupe Roll No -2040" ,400 ,220 ) ;
g.drawString ( "Niraj Solanke Roll No -2032" ,400 ,240 ) ;
g.drawString ( "Sanket Tambe Roll No -2035" ,400 ,260 ) ;
g.drawString ( "Class - T.Y.CO " ,400 ,280 ) ;
g.setFont ( fo) ;
g.drawString ( "GIVEN NUMBERS ARE " ,150 ,30 ) ;
g.drawString ( "SORTED NUMBERS ARE " ,150 ,138 ) ;
for ( i= 0 ; i< n; i++ )
{
g.drawOval ( 100 + i* 50 ,42 ,30 ,30 ) ;
g.drawString ( str,112 + i* 50 ,60 ) ;
}
for ( i= 0 ; i< n; i++ )
{
g.drawOval ( 100 + i* 50 ,150 ,30 ,30 ) ;
g.drawString ( str,112 + i* 50 ,168 ) ;
}
try
{
}
{ }
int j,temp= 0 ; // Sorting code
for ( i= 0 ; i< n; i++ )
for ( j= i; j< n- 1 ; j++ )
if ( el[ i] > el[ j+ 1 ] )
{
int f= i,s= j+ 1 ,k; // Animation code
for ( k= 0 ; k< 50 ; k++ )
{
g.drawOval ( 100 + f* 50 ,150 + k* 4 ,30 ,30 ) ;
g.drawString ( str,112 + f* 50 ,168 + k* 4 ) ;
try
{
}
{ }
g.drawOval ( 100 + f* 50 ,150 + k* 4 ,30 ,30 ) ;
g.drawString ( str,112 + f* 50 ,168 + k* 4 ) ;
}
g.drawOval ( 100 + f* 50 ,150 + k* 4 ,30 ,30 ) ;
g.drawString ( str,112 + f* 50 ,168 + k* 4 ) ;
for ( k= 0 ; k< 50 ; k++ )
{
g.drawOval ( 100 + s* 50 ,150 + k* 4 ,30 ,30 ) ;
g.drawString ( str,112 + s* 50 ,168 + k* 4 ) ;
try
{
}
{ }
g.drawOval ( 100 + s* 50 ,150 + k* 4 ,30 ,30 ) ;
g.drawString ( str,112 + s* 50 ,168 + k* 4 ) ;
}
g.drawOval ( 100 + s* 50 ,150 + k* 4 ,30 ,30 ) ;
g.drawString ( str,112 + s* 50 ,168 + k* 4 ) ;
for ( int z= 0 ; z< ( s- f) * 50 ; z++ ) // mixing code
{
g.drawOval ( 100 + f* 50 + z,350 ,30 ,30 ) ;
g.drawString ( str,112 + f* 50 + z,368 ) ;
g.drawOval ( 100 + s* 50 - z,350 ,30 ,30 ) ;
g.drawString ( str,112 + s* 50 - z,368 ) ;
try
{
}
{ }
g.drawOval ( 100 + f* 50 + z,350 ,30 ,30 ) ;
g.drawString ( str,112 + f* 50 + z,368 ) ;
g.drawOval ( 100 + s* 50 - z,350 ,30 ,30 ) ;
g.drawString ( str,112 + s* 50 - z,368 ) ;
}
g.drawOval ( 100 + f* 50 + z,350 ,30 ,30 ) ;
g.drawString ( str,112 + f* 50 + z,368 ) ;
g.drawOval ( 100 + s* 50 - z,350 ,30 ,30 ) ;
g.drawString ( str,112 + s* 50 - z,368 ) ;
for ( int t= 50 ; t> 0 ; t-- )
{
g.drawOval ( 100 + f* 50 ,150 + t* 4 ,30 ,30 ) ;
g.drawString ( str,112 + f* 50 ,168 + t* 4 ) ;
try
{
}
{ }
g.drawOval ( 100 + f* 50 ,150 + t* 4 ,30 ,30 ) ;
g.drawString ( str,112 + f* 50 ,168 + t* 4 ) ;
}
g.drawOval ( 100 + f* 50 ,150 + t* 4 ,30 ,30 ) ;
g.drawString ( str,112 + f* 50 ,168 + t* 4 ) ;
for ( t= 50 ; t> 0 ; t-- )
{
g.drawOval ( 100 + s* 50 ,150 + t* 4 ,30 ,30 ) ;
g.drawString ( str,112 + s* 50 ,168 + t* 4 ) ;
try
{
}
{ }
g.drawOval ( 100 + s* 50 ,150 + t* 4 ,30 ,30 ) ;
g.drawString ( str,112 + s* 50 ,168 + t* 4 ) ;
}
g.drawOval ( 100 + s* 50 ,150 + t* 4 ,30 ,30 ) ;
g.drawString ( str,112 + s* 50 ,168 + t* 4 ) ;
temp= el[ i] ;
el[ i] = el[ j+ 1 ] ;
el[ j+ 1 ] = temp;
}
}
}
/*<APPLET CODE=VisualBubbleSort.class WIDTH=770 HEIGHT=400>
</APPLET>
*/
aW1wb3J0IGphdmEuYXd0Lio7CmltcG9ydCBqYXZhLmFwcGxldC4qOwpwdWJsaWMgY2xhc3MgVmlzdWFsQnViYmxlU29ydCBleHRlbmRzIEFwcGxldCBpbXBsZW1lbnRzIFJ1bm5hYmxlCnsKICAgIGludCBuPTU7CQkJLy9TaXplIG9mIEFycmF5CglpbnQgaSxkPTAsbT0wLHosdDsKCWludCBlbFtdPXs1LDYsNywyLDF9OwkJLy8gIEVudGVyZWQgRWxlbWVudHMKCVN0cmluZyBzdHI9bmV3IFN0cmluZygpOwoJcHVibGljIHZvaWQgaW5pdCgpCgl7CglzZXRCYWNrZ3JvdW5kKENvbG9yLmJsYWNrKTsKCX0KCXB1YmxpYyB2b2lkIHN0YXJ0KCkKCXsKCVRocmVhZCB0PW5ldyBUaHJlYWQoKTsKCXQuc3RhcnQoKTsKCX0KCXB1YmxpYyB2b2lkIHJ1bigpCgl7fQoJcHVibGljIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykKCXsKCUZvbnQgZm89Z2V0Rm9udCgpOwoJRm9udCBmMT1uZXcgRm9udCgiVGltZXMgTmV3IFJvbWFuIixGb250LlBMQUlOLDMwKTsKCWcuc2V0Rm9udChmMSk7CglnLnNldENvbG9yKENvbG9yLmdyZWVuKTsKCWcuZHJhd0xpbmUoMzcwLDAsMzcwLDQwMCk7CglnLmRyYXdTdHJpbmcoIkFwcGxldCBvbiBWaXN1YWwgQnViYmxlIFNvcnQiLDQwMCwxMDApOwoJZjE9bmV3IEZvbnQoIlRpbWVzIE5ldyBSb21hbiIsRm9udC5QTEFJTiwxNyk7CglnLnNldEZvbnQoZjEpOwoJZy5zZXRDb2xvcihDb2xvci55ZWxsb3cpOwoJZy5kcmF3U3RyaW5nKCJkZXZlbG9wZWQgYnkiLDQwMCwyMDApOwoJZy5kcmF3U3RyaW5nKCJTaWRkZXNoIFR1cGUgCVJvbGwgTm8gLTIwNDAiLDQwMCwyMjApOwoJZy5kcmF3U3RyaW5nKCJOaXJhaiBTb2xhbmtlIAlSb2xsIE5vIC0yMDMyIiw0MDAsMjQwKTsKCWcuZHJhd1N0cmluZygiU2Fua2V0IFRhbWJlIAlSb2xsIE5vIC0yMDM1Iiw0MDAsMjYwKTsKCWcuZHJhd1N0cmluZygiQ2xhc3MgLSBULlkuQ08gIiw0MDAsMjgwKTsKCWcuc2V0Rm9udChmbyk7CglnLnNldENvbG9yKENvbG9yLmdyZWVuKTsKCWcuZHJhd1N0cmluZygiR0lWRU4gTlVNQkVSUyBBUkUgIiwxNTAsMzApOwoJZy5kcmF3U3RyaW5nKCJTT1JURUQgTlVNQkVSUyBBUkUgIiwxNTAsMTM4KTsKCWZvcihpPTA7aTxuO2krKykKCXsKCXN0cj1JbnRlZ2VyLnRvU3RyaW5nKGVsW2ldKTsJCQoJZy5kcmF3T3ZhbCgxMDAraSo1MCw0MiwzMCwzMCk7CglnLmRyYXdTdHJpbmcoc3RyLDExMitpKjUwLDYwKTsKCX0JCglmb3IoaT0wO2k8bjtpKyspCgl7CglzdHI9SW50ZWdlci50b1N0cmluZyhlbFtpXSk7CQkKCWcuZHJhd092YWwoMTAwK2kqNTAsMTUwLDMwLDMwKTsKCWcuZHJhd1N0cmluZyhzdHIsMTEyK2kqNTAsMTY4KTsKCX0KCXRyeQoJewoJVGhyZWFkLnNsZWVwKDMwMDApOwoJfQoJY2F0Y2goRXhjZXB0aW9uIGUpCgl7fQoJaW50IGosdGVtcD0wOwkJLy8gICAgU29ydGluZyBjb2RlCglmb3IoaT0wO2k8bjtpKyspCglmb3Ioaj1pO2o8bi0xO2orKykKCQlpZihlbFtpXT5lbFtqKzFdKQoJCXsKCQlpbnQgZj1pLHM9aisxLGs7CQkvLyAgIEFuaW1hdGlvbiBjb2RlCgkJZm9yKGs9MDtrPDUwO2srKykKCQl7CgkJZy5zZXRDb2xvcihDb2xvci53aGl0ZSk7CgkJc3RyPUludGVnZXIudG9TdHJpbmcoZWxbZl0pOwkJCgkJZy5kcmF3T3ZhbCgxMDArZio1MCwxNTArayo0LDMwLDMwKTsKCQlnLmRyYXdTdHJpbmcoc3RyLDExMitmKjUwLDE2OCtrKjQpOwoJCSB0cnkKCQl7CgkJVGhyZWFkLnNsZWVwKDE1KTsKCQl9CgkJY2F0Y2goRXhjZXB0aW9uIGUpCgkJe30KCQlnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKCQlzdHI9SW50ZWdlci50b1N0cmluZyhlbFtmXSk7CQkKCQlnLmRyYXdPdmFsKDEwMCtmKjUwLDE1MCtrKjQsMzAsMzApOwoJCWcuZHJhd1N0cmluZyhzdHIsMTEyK2YqNTAsMTY4K2sqNCk7CgkJfQoJCWcuc2V0Q29sb3IoQ29sb3Iud2hpdGUpOwoJCXN0cj1JbnRlZ2VyLnRvU3RyaW5nKGVsW2ZdKTsJCQoJCWcuZHJhd092YWwoMTAwK2YqNTAsMTUwK2sqNCwzMCwzMCk7CgkJZy5kcmF3U3RyaW5nKHN0ciwxMTIrZio1MCwxNjgrayo0KTsKCQlmb3Ioaz0wO2s8NTA7aysrKQoJCXsKCQlnLnNldENvbG9yKENvbG9yLndoaXRlKTsKCQlzdHI9SW50ZWdlci50b1N0cmluZyhlbFtzXSk7CQkKCQlnLmRyYXdPdmFsKDEwMCtzKjUwLDE1MCtrKjQsMzAsMzApOwoJCWcuZHJhd1N0cmluZyhzdHIsMTEyK3MqNTAsMTY4K2sqNCk7CgkJdHJ5CgkJewoJCVRocmVhZC5zbGVlcCgxMCk7CgkJfQoJCWNhdGNoKEV4Y2VwdGlvbiBlKQoJCXt9CgkJZy5zZXRDb2xvcihDb2xvci5ibGFjayk7CgkJc3RyPUludGVnZXIudG9TdHJpbmcoZWxbc10pOwkJCgkJZy5kcmF3T3ZhbCgxMDArcyo1MCwxNTArayo0LDMwLDMwKTsKCQlnLmRyYXdTdHJpbmcoc3RyLDExMitzKjUwLDE2OCtrKjQpOwoJCX0KCQlzdHI9SW50ZWdlci50b1N0cmluZyhlbFtzXSk7CQkKCQlnLmRyYXdPdmFsKDEwMCtzKjUwLDE1MCtrKjQsMzAsMzApOwoJCWcuZHJhd1N0cmluZyhzdHIsMTEyK3MqNTAsMTY4K2sqNCk7CgkJZm9yKGludCB6PTA7ejwocy1mKSo1MDt6KyspCQkvLyAgbWl4aW5nIGNvZGUKCQl7CgkJZy5zZXRDb2xvcihDb2xvci53aGl0ZSk7CgkJc3RyPUludGVnZXIudG9TdHJpbmcoZWxbZl0pOwkJCgkJZy5kcmF3T3ZhbCgxMDArZio1MCt6LDM1MCwzMCwzMCk7CgkJZy5kcmF3U3RyaW5nKHN0ciwxMTIrZio1MCt6LDM2OCk7CgkJc3RyPUludGVnZXIudG9TdHJpbmcoZWxbc10pOwkJCgkJZy5kcmF3T3ZhbCgxMDArcyo1MC16LDM1MCwzMCwzMCk7CgkJZy5kcmF3U3RyaW5nKHN0ciwxMTIrcyo1MC16LDM2OCk7CgkJdHJ5CgkJewoJCVRocmVhZC5zbGVlcCgyMCk7CgkJfQoJCWNhdGNoKEV4Y2VwdGlvbiBlKQoJCXt9CgkJZy5zZXRDb2xvcihDb2xvci5ibGFjayk7CgkJc3RyPUludGVnZXIudG9TdHJpbmcoZWxbZl0pOwkJCgkJZy5kcmF3T3ZhbCgxMDArZio1MCt6LDM1MCwzMCwzMCk7CgkJZy5kcmF3U3RyaW5nKHN0ciwxMTIrZio1MCt6LDM2OCk7CgoJCXN0cj1JbnRlZ2VyLnRvU3RyaW5nKGVsW3NdKTsJCQoJCWcuZHJhd092YWwoMTAwK3MqNTAteiwzNTAsMzAsMzApOwoJCWcuZHJhd1N0cmluZyhzdHIsMTEyK3MqNTAteiwzNjgpOwoJCX0KCWcuc2V0Q29sb3IoQ29sb3Iud2hpdGUpOwoJc3RyPUludGVnZXIudG9TdHJpbmcoZWxbZl0pOwkJCglnLmRyYXdPdmFsKDEwMCtmKjUwK3osMzUwLDMwLDMwKTsKCWcuZHJhd1N0cmluZyhzdHIsMTEyK2YqNTAreiwzNjgpOwoJc3RyPUludGVnZXIudG9TdHJpbmcoZWxbc10pOwkJCglnLmRyYXdPdmFsKDEwMCtzKjUwLXosMzUwLDMwLDMwKTsKCWcuZHJhd1N0cmluZyhzdHIsMTEyK3MqNTAteiwzNjgpOwoJZm9yKGludCB0PTUwO3Q+MDt0LS0pCgl7CglnLnNldENvbG9yKENvbG9yLndoaXRlKTsKCXN0cj1JbnRlZ2VyLnRvU3RyaW5nKGVsW3NdKTsJCQoJZy5kcmF3T3ZhbCgxMDArZio1MCwxNTArdCo0LDMwLDMwKTsKCWcuZHJhd1N0cmluZyhzdHIsMTEyK2YqNTAsMTY4K3QqNCk7Cgl0cnkKCXsKCVRocmVhZC5zbGVlcCgxMCk7Cgl9CgljYXRjaChFeGNlcHRpb24gZSkKCXt9CglnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKCXN0cj1JbnRlZ2VyLnRvU3RyaW5nKGVsW3NdKTsJCQoJZy5kcmF3T3ZhbCgxMDArZio1MCwxNTArdCo0LDMwLDMwKTsKCWcuZHJhd1N0cmluZyhzdHIsMTEyK2YqNTAsMTY4K3QqNCk7CgkgfQoJZy5zZXRDb2xvcihDb2xvci53aGl0ZSk7CglzdHI9SW50ZWdlci50b1N0cmluZyhlbFtzXSk7CQkKCWcuZHJhd092YWwoMTAwK2YqNTAsMTUwK3QqNCwzMCwzMCk7CglnLmRyYXdTdHJpbmcoc3RyLDExMitmKjUwLDE2OCt0KjQpOwoJZm9yKHQ9NTA7dD4wO3QtLSkKCXsKCWcuc2V0Q29sb3IoQ29sb3Iud2hpdGUpOwoJc3RyPUludGVnZXIudG9TdHJpbmcoZWxbZl0pOwkJCglnLmRyYXdPdmFsKDEwMCtzKjUwLDE1MCt0KjQsMzAsMzApOwoJZy5kcmF3U3RyaW5nKHN0ciwxMTIrcyo1MCwxNjgrdCo0KTsKCXRyeQoJewoJVGhyZWFkLnNsZWVwKDE1KTsKCX0KCWNhdGNoKEV4Y2VwdGlvbiBlKQoJe30KCWcuc2V0Q29sb3IoQ29sb3IuYmxhY2spOwoJc3RyPUludGVnZXIudG9TdHJpbmcoZWxbZl0pOwkJCglnLmRyYXdPdmFsKDEwMCtzKjUwLDE1MCt0KjQsMzAsMzApOwoJZy5kcmF3U3RyaW5nKHN0ciwxMTIrcyo1MCwxNjgrdCo0KTsKCX0KCWcuc2V0Q29sb3IoQ29sb3Iud2hpdGUpOwoJc3RyPUludGVnZXIudG9TdHJpbmcoZWxbZl0pOwkJCglnLmRyYXdPdmFsKDEwMCtzKjUwLDE1MCt0KjQsMzAsMzApOwoJZy5kcmF3U3RyaW5nKHN0ciwxMTIrcyo1MCwxNjgrdCo0KTsJCQoJdGVtcD1lbFtpXTsKCWVsW2ldPWVsW2orMV07CgllbFtqKzFdPXRlbXA7Cgl9Cgl9Cn0KLyo8QVBQTEVUIENPREU9VmlzdWFsQnViYmxlU29ydC5jbGFzcyBXSURUSD03NzAgSEVJR0hUPTQwMD4KCTwvQVBQTEVUPgoqLwo=