选择排序实例

选择排序:从第一个下标开始 1对多 比较完最小/最大的放到最小下标 然后再依次比较

<?php
namespace Home\Controller;
use think\Controller;

class ChoiceController extends Controller{
    
    //选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
    
    public function index(){
        $arr=array(7,5,0,4,-1);
        $this->selectSort($arr);
        print_r($arr);
    }
    function selectSort(&$arr){
        //定义进行交换的变量
        $temp=0;
        $lengh=count($arr);
        for($i=0;$i<$lengh-1;$i++){
            //假设$i就是最小值
            $valmin=$arr[$i]; //$arr[1]
            //记录最小值的下标
            $minkey=$i;       //下标为1
            for($j=$i+1;$j<$lengh;$j++){
                //最小值大于后面的数就进行交换
                if($valmin>$arr[$j]){ //$valmin=$arr[0] $arr[$j]=$arr[1] 7>5
                    $valmin=$arr[$j]; //执行$valmin=$arr[1] 7 和5 比较后      $valmin=$arr[1]为最小值
                    $minkey=$j; //重置最小值的下标为 $j 即 $i+1=0+1  = 1          $minkey=1
                }
            }
            //进行交换
            $temp=$arr[$i]; //$temp=$arr[0]
            $arr[$i]=$arr[$minkey]; //$arr[0]=$arr[1]
            $arr[$minkey]=$temp; //$arr[1]=$arr[0]
        }
    }
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 10,599评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 9,092评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 5,031评论 0 2
  • 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的...
    Luc_阅读 6,776评论 0 35
  • P6 1.It was a scene which was enacted(enact被动:使出现,使发生) mo...
    Angkorwat_阅读 4,873评论 0 0

友情链接更多精彩内容