Click on the applet below to see the algorithm run.
/*
* @(#)BubbleSortAlgorithm.java 1.6f 95/01/31 James Gosling
*
* Copyright (c) 1994-1996 Sun Microsystems, Inc. All Rights Reserved.
*
* See additional copyright information below.
*
*
* A bubble sort demonstration algorithm based on
* SortAlgorithm.java and
* SortItem.java.
*
* @author James Gosling
* modified by Alyce Brady
* @version 1.6f, 31 Jan 1995
*/
class BubbleSortAlgorithm extends SortAlgorithm {
void sort(int a[]) throws Exception
{
// Loop through the array, comparing adjacent items. If they
// are in the wrong order with respect to each other, they are
// swapped. In each pass, the next smallest item "bubbles" all
// the way to the top.
for (int i = 0; i < a.length; i++)
for (int j = a.length-1; j > i; j--)
{ if (stopRequested)
return;
if (a[j-1] > a[j])
{ int T = a[j-1];
a[j-1] = a[j];
a[j] = T;
}
pause(i,j);
}
}
}
/*
* Permission to use, copy, modify, and distribute this software
* and its documentation for NON-COMMERCIAL or COMMERCIAL purposes and
* without fee is hereby granted.
* Please refer to the file http://java.sun.com/copy_trademarks.html
* for further important copyright and trademark information and to
* http://java.sun.com/licensing.html for further important licensing
* information for the Java (tm) Technology.
*
* SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
* THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
* ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
* DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
*
* THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE
* CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE
* PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT
* NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE
* SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE
* SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE
* PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). SUN
* SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR
* HIGH RISK ACTIVITIES.
*/
Original sorting algorithms by:
James Gosling,
jag@firstperson.com