PHP 冒泡排序

使用递归实现冒泡排序

PHP 多递归时需要 return,如下述代码中

return bubblesort($array, $count-1);

如果改为

bubblesort($array, $count-1);

上层就接不到值,即结果为 null

完整的代码实现

<?php
//产生10个1到100的随机数
for ($i = 0; $i < 10; $i++){
  $array[$i] = rand(1, 100);
}

/*
 * 冒泡排序
 */
function bubblesort($array, $count){
  if ($count == 0){//排序结束
    return $array;
  }

  for ($i = 0; $i < $count-1; $i++){    
    //将两个相邻的随机数做比较,
    //当第$i个随机数大于第$i+1个随机数时,
    //互换它们的位置
    if ($array[$i] > $array[$i+1]){
      $tmp = $array[$i+1];
      $array[$i+1] = $array[$i];
      $array[$i] = $tmp;
    }
  } 

  //PHP中递归需要return,否则只能得到null
  return bubblesort($array, $count-1);
}

$count = count($array);
$new_array = bubblesort($array, $count);
var_dump($new_array);

上一篇
JavaScript 变量声明提前 JavaScript 变量声明提前
JavaScript 使用了函数作用域,变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。 到底是什么意思呢?我们来看下面这段代码 var scope = 'global'; function f(){ console
2012-10-17
下一篇
PHP 工厂方法模式 PHP 工厂方法模式
简单工厂其实不是一个设计模式,反而比较像是一种编程习惯。 有些开发人员的确是把这个编程习惯误认为是工厂模式。 <?php //比萨商店 class PizzaStore{ public $Factory; public fu
2012-08-18