加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php冒泡排序讲解及实现源码

发布时间:2020-05-30 19:12:14 所属栏目:PHP 来源:互联网
导读:php编程中经常会遇到给一个数组中的值进行排序。那么用哪种办法能万能解决数组中的排序呢,很明显,冒泡排序一步可以搞定,本文章向大家介绍php冒泡排序实现源码及相关讲解,需要的朋友可以参考一下。

什么是冒泡排序

冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。但其实在实际过程中也可以根据自己需要反过来用,大数往前放,小数往后放。

通俗理解冒泡排序:我理解冒泡排序就是小学生排队,你比我个子矮(数字小),你就站我前面(浮上去),直到找到比我个子高那个,我站在他的前面,他继续往后面比个子!

php冒泡排序的实现

比如有一个数组array (12,45,28,30,88,67);我们要对数组中的元素进行排序,具体实现源码如下:

/**

* PHP中的冒泡排序法使用

*/

// 作者:www.manongjc.com

// 预先声明一个数组

$arr = array (12,67);

echo "原数组";

print_r($arr);

echo "
";

//冒泡排序

function maopao($arr){

// 进行第一层遍历

for($i=0,$k=count($arr);$i<$k;$i++) {

// 进行第二层遍历 将数组中每一个元素都与外层元素比较

// 这里的i+1意思是外层遍历当前元素往后的

for ($j=$i+1;$j<$k;$j++) {

// 内外层两个数比较

if($arr[$i]<$arr[$j]){

// 先把其中一个数组赋值给临时变量

$temp = $arr[$j];

// 交换位置

$arr[$j] = $arr[$i];

// 再从临时变量中赋值回来

$arr[$i] = $temp;

}

}

}

// 返回排序后的数组

return $arr;

}

// 直接打印排序后的数组

echo '排序后';

print_r(maopao($arr));

?>

通过以上代码执行结果

原数组

Array ( [0] => 12 [1] => 45 [2] => 28 [3] => 30 [4] => 88 [5] => 67 )

排序后

Array ( [0] => 88 [1] => 67 [2] => 45 [3] => 30 [4] => 28 [5] => 12 )

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读