Version: 3.0
Type: Function
Category: Algorithms
License: Other
Description: This is a simple bubblesort by Petter Nilsenthat takes 2 arrays as argument.The first one is the actual data used for sorting, the second is data that will "tag along" with the first array, for instance a descriptive text about the data in the first array.
/* Author: J.B.Lamer, Date: 20070321
*
* bubblesort() takes one array and sorts it
* slow but simple
*
* If you want to reverse, suggest doing the
* check outside of the for loops
* and call two different (outer) for loops
* checking on each rotation can slow you down
*/
function bubblesort( &$a1 )
{
if ( !is_array($a1) )
{ return false; }
$len = count($a1);
// go down array and get an element
for( $i = 0; $i < $len; $i++ )
{
// check everything above element
// if we are larger than swap it
// with that one
for ( $j = ($i+1); $j < $len; $j++ )
{
if ( $a1[$i] > $a1[$j] )
{ swap( $a1[$i], $a1[$j] ); }
}
// at this point the position at $i is the smallest
// go to the next one
}
return true;
}
if ( !function_exists('swap') )
{
// quess what this function is for
function swap( &$a, &$b )
{
$h = $a;
$a = $b;
$b = $h;
}
}