<?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);
PHP实现 选择排序
猜你喜欢
转载自blog.csdn.net/weixin_41895535/article/details/89452654
今日推荐
周排行