源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PHP简单选择排序算法实例

  • 时间:2021-12-20 18:11 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP简单选择排序算法实例
简单的选择排序算法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换
[u]复制代码[/u] 代码如下:
<?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),但选择排序的性能还是略优于冒泡排序的。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部