//定义一个变量保存交换的值
$temp =0
for($i=0$i<count($arr)$i++){
for($j=0$j<count($arr)-$i-1$j++){
if($arr[$j]>$arr[$j+1]){
//如果前面的那个数大于后面的那个数,那么他们就进行交换
$temp=$arr[$j] $arr[$j]=$arr[$j+1] $arr[$j+1]=$temp
}
}
}
}
$arr=array(100,99,200,5,-4,6,-7)
bubbleSort($arr)
print_r($arr)
//数组是值传递,所以传递的时候加个&符号就是地址传递,改变外部变量?>
按照你的要求,编写的冒泡排序的PHP程序如下
(注意因为键的值是字符串类型,所以按照字符大小从小到大排序)
原理是把键值对数组拆成键值的二维数组,然后根据值排序,最后再组装成键值对数组
<?php
$a=Array("a"=>"107","b"=>"5448","c"=>"522")
foreach($a as $k=>$v) $d[] = array($k, $v)
for($i=0$i<count($d)-1$i++){
for($j=0$j<count($d)-1-$i$j++){
if($d[$j][1]>$d[$j+1][1]){
$temp=$d[$j]
$d[$j]=$d[$j+1]
$d[$j+1]=$temp
}
}
}
$arr = array()
foreach($d as $v) $arr[$v[0]] = $v[1]
var_dump($arr)
?>
function bubble_sort($array){
$count = count($array)
if($count <= 0)
{
return false
}
for($i=0$i<$count$i++)
{
for($k=$count-1$k>$i$k--)
{
if($array[$k] <$array[$k-1])
{
$tmp = $array[$k]
$array[$k] = $array[$k-1]
$array[$k-1] = $tmp
}
}
}
return $array
}
$arr = array(3, 5, 1, 4, 2)
$s = bubble_sort($arr)
print_r($s)
拿去改吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)