冒泡排序介绍
冒泡排序,顾名思义就是整个过程就像气泡一样上升,单向冒泡排序的基本思想是(假设有小到大排序):对于给定的n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换器位置,进行一轮比较和换位后,n个记录中的最大记录将位于第n位;然后对前(n-1)个记录进行第二轮比较;重复该过程直到进行比较的记录只剩下一个时为止。
算法原理如下:
- 比较相邻的元素,如果第一个比第二个大,那么就交换这两个元素。
- 对每一对相邻元素做同样的工作,从第一对开始到最后一对结束,最后的元素应该会是最大的数。
- 除了最后一个元素外,针对其他的元素重复以上的步骤。
- 对越来越少的元素重复上面的步骤,知道没有任何一对数字需要比较为止。
根据以上实现原理,实现代码如下:
方法一
<?php
header('content-type:text/html;charset=utf8');
$arr = range(34, 43);
shuffle($arr);
function bubble($arr){
$len = count($arr);
for ($i=1; $i < $len ; $i++) {
for ($j=0; $j < $len-$i; $j++) {
if($arr[$j]>$arr[$j+1]){
$tmp = $arr[$j+1];
$arr[$j+1] = $arr[$j];