加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP编程:PHP简单选择排序算法实例

发布时间:2020-12-13 02:22:35 所属栏目:PHP教程 来源:网络整理
导读:《PHP简单选择排序算法实例》要点: 本文介绍了PHP简单选择排序算法实例,希望对您有用。如果有疑问,可以联系我们。 简单的选择排序算法:通过n-i次关键字间的比拟,从n-i+1个记录中选出关键字最小的记录,并和第i(1=i=n)个记录交换 PHP实战 代码如下: ?php ?

《PHP简单选择排序算法实例》要点:
本文介绍了PHP简单选择排序算法实例,希望对您有用。如果有疑问,可以联系我们。

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

代码如下:

<?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简单选择排序算法实例》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读