道者编程

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



最新评论:
我要评论:

看不清楚