选择排序对冒泡排序进行了改进,每一次从等待排序的数据元素中找出最小或者最大的一个元素的位置,并且存放在系列的起始位置,直到全部待排序的元素排完。
介绍:
选择排序对冒泡排序进行了改进,每一次从等待排序的数据元素中找出最小或者最大的一个元素的位置,并且存放在系列的起始位置,直到全部待排序的元素排完。
选择排序算法实现步骤:
<?php
class selectSortObj {
function selectSort($arr) {
$count = count($arr);
for($i = 0; $i < $count; $i++) {
$minValKey = $i;
for($j = $i + 1; $j < $count; $j++) {
if($arr[$j] < $arr[$minValKey]) {
$minValKey = $j;
break;
}
}
if($minValKey != $i){
list($arr[$i],$arr[$minValKey]) = [$arr[$minValKey], $arr[$i]];
}
// $t = $arr[$i];
// $arr[$i] = $arr[$minValKey];
// $arr[$minValKey] = $t;
}
return $arr;
}
}
$arr = [11, 2, 15];
$result = (new selectSortObj())->selectSort($arr);
var_dump($result);
// array(3) {
// [0]=>
// int(2)
// [1]=>
// int(11)
// [2]=>
// int(15)
// }
定义了一个类selectSortObj,类中搞了一个方法,处理排序。
排序方法中有两个for循环,第一个循环是外层循环,控制里层循环比较的次数。
循环对比
外层 | 内层 |
---|---|
0 | 比较2次 |
1 | 比较1次 |
转载注明:
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~
还没有人发表评论