您的位置:首页 > 编程语言 > PHP开发

php冒泡排序和快速排序笔记

2012-07-09 09:51 330 查看
<?php
$arr = array(12,1,5,88,35,0,18,100,50,21,28,7,9,9.5);

//交换两值
function swap(&$m, &$n){
$temp = $m;
$m = $n;
$n = $temp;

/* 如数组中有小数时,以下方法会省略小数点后面的数
$m = $m ^ $n;
$n = $m ^ $n;
$m = $m ^ $n;
*/
}

//冒泡排序
function bubbleSort($arr){
if(!is_array($arr)) return $arr;
$count = count($arr);
for($i=1; $i<$count; $i++){
for($j=0; $j<$count-$i;$j++){
if($arr[$j] > $arr[$j+1]){
/*
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
*/
/*
$arr[$j] = $arr[$j] + $arr[$j+1];
$arr[$j+1] = $arr[$j] - $arr[$j+1];
$arr[$j] = $arr[$j] - $arr[$j+1];
*/
/*
$arr[$j] = $arr[$j] ^ $arr[$j+1];
$arr[$j+1] = $arr[$j] ^ $arr[$j+1];
$arr[$j] = $arr[$j] ^ $arr[$j+1];
*/
swap($arr[$j], $arr[$j+1]);
}
}
}
return $arr;
}

$arr2 = bubbleSort($arr);
echo implode(',', $arr2).'<hr>';

//冒泡排序
function bubbleSort2($arr){
if(!is_array($arr)) return $arr;
$count = count($arr);
for($i=0; $i<$count-1; $i++){
for($j=$i+1; $j<$count; $j++){
if($arr[$i] < $arr[$j]){
/*
$arr[$i] = $arr[$i] + $arr[$j];
$arr[$j] = $arr[$i] - $arr[$j];
$arr[$i] = $arr[$i] - $arr[$j];
*/
swap($arr[$i], $arr[$j]);
}
}
}
return $arr;
}
$arr3 = bubbleSort2($arr);
echo implode(',', $arr3).'<hr>';;

//快速排序
function quickSort($arr){
if(!is_array($arr)) return $arr;
$len=count($arr);
for($i=0; $i<$len; $i++){
$min = $arr[$i];
for($j=$i+1; $j<$len; $j++){
if($arr[$i] > $arr[$j]){
$temp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $temp;
}
}
$min = $arr[$j];
}
return $arr;
}
$arr4 = quickSort($arr);
echo implode(',', $arr4);
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: