PHP两种排序
1、字符串反向:
<?php
function my_strrev($str)
{
$count = strlen($str);
if($count<=0) return false;
for($i=$count-1;$i>=0;$i--){
$s = substr($str,$i,1);
$strs = $strs.$s;
}
return $strs;
}
$str = "123456789";
echo my_strrev($str);
?>2:冒泡:
(1):从第一个数开始比对
<?php
function sorts($list)
{
if(!is_array($list)) return false;
$count = count($list);
if(empty($count)) return false;
for($i=0;$i<$count;$i++){ //外层循环数组
//内层循环,相邻的数对比,对比count-1次,循环一次,把最小或者最大的沉入数组最后
//这样每次循环数就减少一次。
for($j=0;$j<$count-1-$i;$j++){ //循环一次得到一个最大数或者最小数,故循环次数减1
if($list[$j]<$list[$j+1]){ //交换位置
$tmp = $list[$j];
$list[$j] = $list[$j+1];
$list[$j+1] = $tmp;
}
}
}
print_r($list);
}
$list = ['10','11','2','5','0','1'];
sorts($list); (2):从最后一个数开始比对
<?php
function sorts($list)
{
if(!is_array($list)) return false;
$count = count($list);
if(empty($count)) return false;
for($i=0;$i<$count;$i++)
{
for($j=$count-1;$j>$i;$j--) //从数组最后一个元素往前面推
{
if($list[$j]<$list[$j-1]){
$tmp = $list[$j];
$list[$j] = $list[$j-1];
$list[$j-1] = $tmp;
}
}
}
return $list;
}
$list = ['10','11','2','5','0','1'];
sorts($list);