您现在的位置是:网站首页>文章内容文章内容
PHP实现冒泡排序
李鹏2022-08-21【PHP】1106人已围观
基本思想:对需要排序的数组从后往前进行多遍的扫描,当发现相邻的两个数值的次序与排序要求的规则不一致时,就将这两个数值进行交换。代码如下:
<?php
function my_sort(array $arr,string $by = 'asc') ## asc 正序 desc 倒序
{
for ($i=0; $i < count($arr); $i++) {
for ($k=0; $k < count($arr) - $i -1; $k++){
if ($by == 'asc' && $arr[$k] > $arr[$k+1]) {
$sort = true;
$val = $arr[$k];
$arr[$k] = $arr[$k+1];
$arr[$k+1] = $val;
}else if ($by == 'desc' && $arr[$k] < $arr[$k+1]) {
$sort = true;
$val = $arr[$k];
$arr[$k] = $arr[$k+1];
$arr[$k+1] = $val;
}
}
if (!$sort) {
break;
}
}
return $arr;
}
$arr = [3,1,2,9,5,13,8,7,26,14,198,65,23,47];
echo json_encode(my_sort($arr,'desc')); ## 结果 [198,65,47,26,23,14,13,9,8,7,5,3,2,1]
0