PHP实现冒泡排序和快速排序
来源:互联网 发布:淘宝网购买泓铭软件 编辑:程序博客网 时间:2024/06/07 05:28
声明
php中,数组是当一个普通变量,值传递是要一个实参的一个拷贝副本,跟实参无关,引用传递后可以改变实参的值。而类的对象是无论值传递和引用传递都是引用传递,是对对象的引用,都会改变实参的值。
PHP中的数组可以按值传递,也可以按引用传递,所以编程时一定要注意。
下面的程序是由Java转换过来的,结构上没有什么变化。直接上代码:
按值传递:
冒泡排序:
<?php$array = array(5,2,8,1,6,9,12,3,15,20);print_r($array);echo "<br>";$temp;// $len = count($array);// for ($i = 0; $i < $len;$i++){// for ($j = $i+1; $j < $len;$j++){// if ($array[$i] > $array[$j]){// $temp = $array[$i];// $array[$i] = $array[$j];// $array[$j] = $temp;// }// }// }////print_r($array);function bubbleSort($array){ $len = count($array); for ($i = 0; $i < $len;$i++){ for ($j = $i+1; $j < $len;$j++){ if ($array[$i] > $array[$j]){ $temp = $array[$i]; $array[$i] = $array[$j]; $array[$j] = $temp; } } } return $array;}$array = bubbleSort($array);print_r($array);
快速排序:
<?php$arr = array(5,2,8,1,6,9,12,3,15,20);print_r($arr);echo "<br>";function quickSort($array,$left,$right){ $i = $left; $j = $right; $middle = $array[($i+$j)/2]; do{ while($array[$i]<$middle && $i<$right){ $i++; } while($array[$j]>$middle && $j>$left){ $j--; } if ($i <= $j){ $temp = $array[$i]; $array[$i] = $array[$j]; $array[$j] = $temp; $i++; $j--; } }while($i <= $j); if ($i < $right){ $array = quickSort($array,$i,$right); } if ($j > $left){ $array = quickSort($array,$left,$j); } return $array;}$arr = quickSort($arr,0,(count($arr)-1));print_r($arr);
按引用传递:
冒泡排序:
<?php$array = array(5,2,8,1,6,9,12,3,15,20);print_r($array);echo "<br>";$temp;// $len = count($array);// for ($i = 0; $i < $len;$i++){// for ($j = $i+1; $j < $len;$j++){// if ($array[$i] > $array[$j]){// $temp = $array[$i];// $array[$i] = $array[$j];// $array[$j] = $temp;// }// }// }////print_r($array);function bubbleSort(&$array){ $len = count($array); for ($i = 0; $i < $len;$i++){ for ($j = $i+1; $j < $len;$j++){ if ($array[$i] > $array[$j]){ $temp = $array[$i]; $array[$i] = $array[$j]; $array[$j] = $temp; } } }}bubbleSort($array);print_r($array);
快速排序:
<?php$arr = array(5,2,8,1,6,9,12,3,15,20);print_r($arr);echo "<br>";function quickSort(&$arr,$left,$right){ $i = $left; $j = $right; $middle = $arr[($i+$j)/2]; do{ while($arr[$i]<$middle && $i<$right){ $i++; } while($arr[$j]>$middle && $j>$left){ $j--; } if ($i <= $j){ $temp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $temp; $i++; $j--; } }while($i <= $j); if ($i < $right){ quickSort($arr,$i,$right); } if ($j > $left){ quickSort($arr,$left,$j); }}quickSort($arr,0,(count($arr)-1));print_r($arr);
1 0
- PHP实现冒泡排序和快速排序
- PHP实现快速排序与冒泡排序
- php的冒泡排序和快速排序
- php冒泡排序和快速排序
- PHP实现插入排序,选择排序,冒泡排序和快速排序
- php实现冒泡排序,选择排序,插入排序和快速排序
- 冒泡排序和快速排序java实现
- c++实现冒泡排序和快速排序
- js实现冒泡排序和快速排序
- C++实现快速排序和冒泡排序
- java实现冒泡排序和快速排序
- java实现冒泡排序和快速排序
- PHP实现冒泡、选择、插入和快速排序
- php 实现冒泡、选择、插入和快速排序详解
- php实现排序算法(一) 冒泡排序 快速排序
- 冒泡排序-选择排序-快速排序(PHP实现)
- php 冒泡,快速排序
- php 冒泡排序 快速排序
- A. New Year and Hurry
- CSS学习Day06
- Unity3D 旋转天空盒的方法
- 海豚蓝牙ASIO驱动程序使用说明
- 好久没来了,测试一下现在的博客
- PHP实现冒泡排序和快速排序
- 函数的传入和传出参数
- uiweb实现缓存
- 自定义拦截器分析
- 笔记
- java常见的120道面试题第三季
- 使用sz rz命令在windows和linux系统之间传文件
- 将u-boot-2016.11移植到TINY4412
- 神经网络和深度学习