画江湖之算法篇 [排序算法] 选择排序
算法篇
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 时间复杂度 分析
本作品采用《CC 协议》,转载必须注明作者和本文链接