上篇文章给大家介绍了《PHP中什么是错误处理?错误代号?错误触发?》,本文继续给大家介绍在PHP中如何使用冒泡排序?有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
数组排序算法.
冒泡排序
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访边要排序的数列,-次比较两个元素,如果他们的顺序错误就把他们交换过来。
走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成
冒泡排序的算法思路:。
1)比较相邻的元素。 如果第一一个比第二个大,就交换他们两个。。
2)对每一对相邻元素作同样的工作,从开始第-对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3)针对所有的元素重以上的步骤,除了最后一个。。
4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
首先我们先定义一个数组,然后我们想办法把最大的值放在最右边去,我们使用for循环,我们以代码为例,如下:
<?php //数组排序算法:冒泡排序 $arr = array(1,4,2,9,7,5,8); //想办法将最大的值放到最右边去 for($j =0,$len = count($arr); $j < $len - 1;$j++){ //判断:两两相比 if($arr[$j] > $arr[$j+1]){ //左边比右边大:交换 $temp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $temp; } } echo '<pre>'; print_r($arr);
运行结果如下:
那么此时我们该如何让上述代码在运行一次,我们让下面可以每次找出最大值的代码重复执行。
<?php //数组排序算法:冒泡排序 $arr = array(1,4,2,9,7,5,8); for($i=0,$len = count($arr);$i < $len;$i++){ //想办法将最大的值放到最右边去 for($j =0,$len = count($arr); $j < $len - 1;$j++){ //判断:两两相比 if($arr[$j] > $arr[$j+1]){ //左边比右边大:交换 $temp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $temp; } } echo '<pre>'; print_r($arr); }
运行结果如下:
推荐学习:《PHP视频教程》