PHP简单选择排序算法实例
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-09 14:50:50 浏览: 评论:0
这篇文章主要介绍了PHP简单选择排序算法实例,本文直接给出实现代码,并以类的方式实现,需要的朋友可以参考下
简单的选择排序算法:通过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),但选择排序的性能还是略优于冒泡排序的。
Tags: PHP排序算法
相关文章
- ·PHP中实现冒泡排序和快速排序算法示例(2015-04-04)
- ·PHP 冒泡/快速/选择/插入排序算法实例讲解(2015-12-24)
- ·php四种基础排序算法的运行时间比较(2016-08-25)
- ·php实现的常见排序算法汇总(2021-04-11)
- ·PHP四种基本排序算法示例(2021-05-22)
- ·PHP版本常用的排序算法汇总(2021-06-30)
- ·PHP排序算法系列之桶排序详解(2021-08-26)
- ·PHP排序算法系列之归并排序详解(2021-08-27)
- ·PHP排序算法系列之直接选择排序详解(2021-08-27)
- ·PHP排序算法系列之插入排序详解(2021-08-27)
- ·PHP排序算法之冒泡排序(Bubble Sort)实现方法详解(2021-09-11)
- ·PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析(2021-09-11)
- ·PHP排序算法之基数排序(Radix Sort)实例详解(2021-09-11)
- ·PHP排序算法之快速排序(Quick Sort)及其优化算法详解(2021-09-11)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)