用php实现的各种排序算法总结_各种排序方法总结

2020-02-27 其他工作总结 下载本文

用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

《用php实现的各种排序算法总结.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
用php实现的各种排序算法总结
点击下载文档
相关专题 各种排序方法总结 算法 php 各种排序方法总结 算法 php
[其他工作总结]相关推荐
    [其他工作总结]热门文章
      下载全文