画江湖之算法篇 [排序算法] 选择排序

算法篇

1 选择排序简介

概括:

  • 选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。小伙伴们仔细看下面的动态图哦

完整代码块

public static function select($array){
        $count=count($array);
        for($i=0;$i<$count-1;$i++){
            /*findtheminest*/
            $min=$i;
            // echo'$min-->'.$array[$min].'-->';
            for($j=$i+1;$j<$count;$j++){
                //由小到大排列
                if($array[$min]>$array[$j]){
                    //表明当前最小的还比当前的元素大
                    $min=$j;
                    //赋值新的最小的
                }
            }
            // echo$array[$min].'coco<br/>';
            /*swap$array[$i]and$array[$min]即将当前内循环的最小元素放在$i位置上*/
            if($min!=$i){
                $temp=$array[$min];
                $array[$min]=$array[$i];
                $array[$i]=$temp;
            }
        }
        return $array;
    }

2 分析代码块 具体分析到代码注释哦 ~

选择排序

public static function select($array){
        $count=count($array);//取出数组的总长度
        for($i=0;$i<$count-1;$i++){//外部循环 依次循环
            /* 找出最小的元素 开始*/
            $min=$i;//查找到最低的元素
            for($j=$i+1;$j<$count;$j++){
                //由小到大排列
                if($array[$min]>$array[$j]){//如果当前的元素比后面的元素大
                    $min=$j;//就把最小的元素指针替换成后面元素
                }
            }
            /* 找出最小的元素 结束*/

            /*swap$array[$i]and$array[$min]即将当前内循环的最小元素放在$i位置上*/
            if($min!=$i){//如果找出的最小的元素不在当前的循环的索引位置
                $temp=$array[$min];//当前元素存储临时变量
                $array[$min]=$array[$i];//把最小位置上的元素替换成当前的元素
                $array[$i]=$temp;//把当前的元素替换成最小的元素
            }
        }
        return $array;
    }

3 时间复杂度 分析

file

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!