PHP实现 选择排序

<?php
/**
 * Created by PhpStorm.
 * User: baimayou
 * Date: 19-4-6
 * Time: 下午4:19
 * 选择排序: 分排序区间和未排序区间;取未排序区间的最小元素与未排序区间第一个元素交换位置,(放到已排序区间末尾)
 * 解法: 两层循环:第一层循环确定无序区间开始的位置,并将无序区间第一个元素设置为最小元素,第二层,遍历无序区间找出最小元素并记录位置
 *        一次第一层循环结束后,交换最小元素的位置与未排序元素的首位置
 * 注意: 第一层循环从0尅是,第二层循环从 i+1 开始,min应记录最小值的下标
 */
function selecttionSort($str){
    $arr = str_split($str);
    $len = count($arr);
    for($i = 0;$i < $len;$i++){
        $min = $i;
        for($j = $i+1;$j < $len;$j++){
            if($arr[$j] < $arr[$min]){
                $min = $j;
            }
        }
        temp($arr,$i,$min);
    }
    return $arr;
}
function temp(&$arr,$i,$j){
    $temp = $arr[$i];
    $arr[$i] = $arr[$j];
    $arr[$j] = $temp;
}
//$str = '7485123';
//$arr = selecttionSort($str);
//var_dump($arr);

猜你喜欢

转载自blog.csdn.net/weixin_41895535/article/details/89452654
今日推荐