
<?
//插入排序(一维数组)
function insert_sort( $arr){
$count = count( $arr);
for( $i=1; $i< $count; $i++){
$tmp = $arr[ $i];
$j = $i - 1;
while( $arr[ $j] > $tmp){
$arr[ $j+1] = $arr[ $j];
$arr[ $j] = $tmp;
$j--;
}
}
return $arr;
}
//选择排序(一维数组)
function select_sort( $arr){
$count = count( $arr);
for( $i=0; $i< $count; $i++){
$k = $i;
for( $j= $i+1; $j< $count; $j++){
if ( $arr[ $k] > $arr[ $j])
$k = $j;
if ( $k != $i){
$tmp = $arr[ $i];
$arr[ $i] = $arr[ $k];
$arr[ $k] = $tmp;
}
}
}
return $arr;
}
//冒泡排序(一维数组)
function bubble_sort( $array){
$count = count( $array);
if ( $count <= 0) return false;
for( $i=0; $i< $count; $i++){
for( $j= $count-1; $j> $i; $j--){
if ( $array[ $j] < $array[ $j-1]){
$tmp = $array[ $j];
$array[ $j] = $array[ $j-1];
$array[ $j-1] = $tmp;
}
}
}
return $array;
}
//快速排序(一维数组)
function quick_sort( $array){
if (count( $array) <= 1) return $array;
$key = $array[0];
$left_arr = array();
$right_arr = array();
for ( $i=1; $i<count( $array); $i++){
if ( $array[ $i] <= $key)
$left_arr[] = $array[ $i];
else
$right_arr[] = $array[ $i];
}
$left_arr = quick_sort( $left_arr);
$right_arr = quick_sort( $right_arr);
return array_merge( $left_arr, array( $key), $right_arr);
}
?>