用PHP如何实现冒泡排序

用PHP如何实现冒泡排序,第1张

<?php //冒泡排序方法 function bubblesort(&$arr){ 

    //定义一个变量保存交换的值 

    $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)

拿去改吧


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12087293.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存