说明选择最小的元素,从左到右交换顺序,完成元素从小到大的排序。选择排序侧重于选择最小的元素。下面是更详细的描述:首先循环遍历所有数据,找到最小的数,然后和第一个数交换位置。然后从第二个数开始,循环到最后一个数,找到最小的数和第二个数交换。依此类推,直到找到最后一个。选择排序每次循环可以安排一个元素,所以需要交换的次数等于元素的个数。选择排序是最容易理解的排序方法。通俗的理解方式是:9个碗里放9个苹果,一个一个看,找出最小的苹果和第一个碗里的苹果交换,然后不再看第一个。从第二碗开始,再打一碗,直到打完所有碗为止。代码函数selectionSort($needSortData){$sortDataLength=count($needSortData);//计算待排序元素个数($i=0;$i<$sortDataLength;$i++)//外层遍历每个待排序元素Element{$min=$i;//外层遍历将当前元素设置为最小值for($j=$i+1;$j<$sortDataLength;$j++){//然后从下一个元素开始,依次比较遍历的元素,这样layeroftraversal记录为内层遍历if($needSortData[$j]<$needSortData[$min]){//这次遍历到一个小于最小值的元素,则用$min记录如下当前位置//然后继续遍历,直到遍历结束,也就是说$min会记录最小值的位置$min=$j;}}//下面三行结合找到的最小值和外层遍历当前元素交换$temp=$needSortData[$i];$needSortData[$i]=$needSortData[$min];$needSortData[$min]=$temp;}返回$needSortData;}$unSortData=[9,1,3,8,2,6,5,7,4];$result=selectionSort($unSortedData);print_r($result);
