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);