手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP简单选择排序算法实例
PHP简单选择排序算法实例
摘要:简单的选择排序算法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1

简单的选择排序算法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换

复制代码 代码如下:

<?php

class Sort{

/**

* 简单的选择排序

*

* @param unknown_type $arr

*/

public function selectSort(&$arr) {

$len=count($arr);

for ($i=0;$i<$len;$i++) {

$min=$i;

for ($j=$i+1;$j<=$len-1;$j++) {

if ($arr[$min]>$arr[$j]) {//如果找到比$arr[$min]较小的值,则将该下标赋给$min

$min=$j;

}

}

if ($min!=$i){//若$min不等于$i,说明找到了最小值,则交换

$this->swap($arr[$i],$arr[$min]);

}

}

}

/**

* 将$a和$b两个值进行位置交换

*/

public function swap(&$a,&$b) {

$temp=$a;

$a=$b;

$b=$temp;

}

}

$arr=array(4,6,1,2,9,8,7,3,5);

$test=new Sort();

$test->selectSort($arr);//简单的选择排序

// var_dump($arr);

?>

简单选择排序的特点:交换移动数据次数相当少,从而节约了相应的时间

简单选择排序的时间复杂度分析:

无论最好最差的情况,其比较次数都是一样多,第i趟排序需要进行n-i次关键字的比较,此时需要比较n(n-1)/2次。所以最终的时间复杂度是O(n^2)

尽管与冒泡排序同为O(n^2),但选择排序的性能还是略优于冒泡排序的。

【PHP简单选择排序算法实例】相关文章:

PHP版本如何选择

php结合安卓客户端实现查询交互实例

PHP Hash算法:Times33算法代码实例

PHP文件读取功能的应用实例

PHP中的事务使用实例

提升PHP速度全攻略

PHP中的traits简单使用实例

php计算给定时间之前的函数用法实例

PHP curl使用实例

PHP SPL标准库之SplFixedArray使用实例

精品推荐
分类导航