用php实现的各种排序算法总结_各种排序方法总结
用php实现的各种排序算法总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“各种排序方法总结”。
www.daodoc.com 用php实现的各种排序算法总结
优化php性能的五个实用技巧:
以下是五个优化技巧,熟练掌握后对于开发还是很有帮助的。
1.对字符串使用单引号
PHP 引擎允许使用单引号和双引号来封装字符串变量,但是这个是有很大的差别的!使用双引号的字符串告诉 PHP 引擎首先去读取字符串内容,查找其中的变量,并改为变量对应的值。一般来说字符串是没有变量的,所以使用双引号会导致性能不佳。最好是使用字符串连接而不 是双引号字符串。
BAD:
$output = “This is a plain string”;
GOOD:
$output = 'This is a plain string';
BAD:
$type = “mixed”;
$output = “This is a $type string”;
GOOD:
$type = 'mixed';
$output = 'This is a '.$type.' string';
2.不要随便就复制变量
有时候为了使 PHP 代码更 加整洁,一些 PHP 新手(包括我)会把预定义好的变量复制到一个名字更简短的变量中,其实这样做的结果是增加了一倍的内存消耗,只会使程序更加慢。试想一下,在下面的例子 中,如果用户恶意插入 512KB 字节的文字到文本输入框中,这样就会导致 1MB 的内存被消耗!
BAD:
$description = $_POST['description'];shishicaimh.com www.daodoc.com
echo $description;
GOOD:
echo $_POST['description'];
3.使用 echo 函数来输出字符串
使用 echo()函数来打印结果出了有更容易阅读之外,在下个例子中,你还可以看到有更好的性能。
BAD:
print($myVariable);
GOOD:
echo $myVariable;
4.不要在 echo 中使用连接符
很***PHP 程序员(有包括我)不知道在用 恶臭 输出多个变量的时候,其实可以使用逗号来分开的,而不必用字符串先把他们先连起来,如下面的第一个例子中,由于使用了连接符就会有性能问题,因为这样就会 需要 PHP 引擎首先把所有的变量连接起来,然后在输出,而在第二个例子中,PHP 引擎就会按照循序输出他们。
BAD:
echo 'Hello, my name is'.$firstName.$lastName.' and I live in '.$city;
GOOD:
echo 'Hello, my name is' , $firstName , $lastName , ' and I live in ' , $city;
5.使用 switch/case 代替 if/else
对于只有单个变量的判断,使用 switch/case 语句而不是 if/else 语句,会有更好的性能,并且代码更加容易阅读和维护。
BAD:
if($_POST['action'] == 'add‘){
shishicaimh.com www.daodoc.com
addUser();
} elseif($_POST['action'] == 'delete’){
deleteUser();
} elseif($_POST['action'] == 'edit‘){
editUser();
} else {
defaultAction();
}
GOOD:
switch($_POST['action']){
case 'add':
addUser();
break;
case 'delete':
用php实现的各种排序算法,冒泡排序,交换排序,选择法排序,插入法排序,快速排序,根据实际情况可选则不同的排序算法。效率也有所不同。
冒泡排序:
function BubbleSort($arr){
$num = count($arr);
for($i=1;$i
for($j=$num-1;$j>=$i;$j--){
if($arr[$j]
$iTemp = $arr[$j-1];
$arr[$j-1] = $arr[$j];
$arr[$j] = $iTemp;
}
}
}
return $arr;
}
?> shishicaimh.com www.daodoc.com
交换法排序:
function ExchangeSort($arr){
$num = count($arr);
for($i=0;$i
for($j=$i+1;$j
if($arr[$j]
$iTemp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $iTemp;
}
}
}
return $arr;
}
?>
选择法排序:
function SelectSort($arr){
$num = count($arr);
for($i=0;$i
$iTemp = $arr[$i];
$iPos = $i;
for($j=$i+1;$j
if($arr[$j]
$iTemp = $arr[$j];
$iPos = $j;
}
}
$arr[$iPos] = $arr[$i];
$arr[$i] = $iTemp;
}
return $arr;
}
?>
插入法排序:
function InsertSort($arr){
$num = count($arr);
for($i=1;$i
$iTemp = $arr[$i];
$iPos = $i-1;
while(($iPos>=0)&&($iTemp
$arr[$iPos+1] = $arr[$iPos];
$iPos--;
}
$arr[$iPos+1] = $iTemp;shishicaimh.com www.daodoc.com
}
return $arr;
}
?>
快速排序 :
function QuickSort($arr){
$num = count($arr);
$l=$r=0;
for($i=1;$i
if($arr[$i]
$left[] = $arr[$i];
$l++;
}else{
$right[] = $arr[$i];
$r++;
}
}
if($l > 1){
$left = QuickSort($left);
}
$new_arr = $left;
$new_arr[] = $arr[0];
if($r > 1){
$right = QuickSort($right);
}
for($i=0;$i
$new_arr[] = $right[$i];
}
return $new_arr;
}
$arr = array(7,1,6,5,2);
$arr_new = QuickSort($arr);
?>
deleteUser();
break;
case 'edit':
editUser();
break;
default: shishicaimh.com