您的位置:首页 > 编程语言 > PHP开发

PHP基础排序算法(一)冒泡排序

2016-08-07 11:26 316 查看

PHP基础排序算法之冒泡排序

<?php

/**
* @冒泡排序
* @排序思路:
*       交换排序,通过相邻数据的交换来达到排序的目的
* @流程:
*      (1)对数组中的各数据,依次比较相邻的两个元素的大小。
*      (2)如果前面的数据大于后面的数据,就交换这两个数据,经过第一轮的多次比较排序后,便可以把最大的数据排好。
*      (3)再用同样的方法把剩下的数据逐个进行比较,最后便可按照从小到大的顺序排列好。
*/

/**
* @desc 冒泡排序算法ASC
* @author lxs
*/
function bubbleSortAsc($arr) {
$count = count($arr);
for($x = 1; $x < $count; $x++) {
for($y = 0; $y < $count-$x; $y++) {
if($arr[$y] > $arr[$y+1]) {
$temp = $arr[$y+1];
$arr[$y+1] = $arr[$y];
$arr[$y] = $temp;
}
}
}
return $arr;
}

/**
* @desc 冒泡排序算法DESC
* @author lxs
*/
function bubbleSortDesc($arr) {
$count = count($arr);
for($x = 1; $x < $count; $x++) {
for($y = 0; $y < $count-$x; $y++) {
if($arr[$y] < $arr[$y+1]) {
$temp = $arr[$y+1];
$arr[$y+1] = $arr[$y];
$arr[$y] = $temp;
}
}
}
return $arr;
}

/**
* @desc 测试
*/
$arr = array(23,13,33,44,53,4,6,22,489,2,65,89,320,54,360,11,999);
$res_asc = bubbleSortAsc($arr);
$res_desc = bubbleSortDesc($arr);
echo '<pre>';
print_r($res_asc);
print_r($res_desc);
echo '</pre>';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息