[PHP] 算法-选择排序的PHP实现
程序员文章站
2022-04-14 20:21:53
选择排序: 1.数组分成前后两个部分,前部分是排序的,后部分是无序的 2.两层循环,先假定当前循环的第一个索引为最小值,内部循环找比该索引还小的值,找到交换 for i;i
选择排序: 1.数组分成前后两个部分,前部分是排序的,后部分是无序的 2.两层循环,先假定当前循环的第一个索引为最小值,内部循环找比该索引还小的值,找到交换 for i;i<len;i++ minindex=i for j=i+1;j<len;j++ if arr[j]<arr[minindex] minindex=j t=arr[i] arr[i]=arr[minindex] arr[minindex]=arr[i]
<?php function selectsort(&$arr){ $len=count($arr); for($i=0;$i<$len;$i++){ $minindex=$i;//假定当前i是最小值 for($j=$i+1;$j<$len;$j++){ if($arr[$j]<$arr[$minindex]){ $minindex=$j; break; } } $t=$arr[$i]; $arr[$i]=$arr[$minindex]; $arr[$minindex]=$t; } return $arr; } $arr=array(2,3,1,4,9,5); selectsort($arr); var_dump($arr);