标签:index 列表 nbsp 位置 code UNC values value 选择
选择排序:第一次从待排序的列表中选出最小(或最大)的一个元素,添加到新列表的起始位置,然后再从剩余的未排序列表元素中选出最小(或最大)的元素,并添加到新列表的末尾,以此类推,直到待排序的列表元素个数为零
1 <?php 2 /** 3 * @param $arr array 4 * @return int 5 */ 6 function findSmallest($arr) //找出数组中的最小元素 7 { 8 $smallest=$arr[0]; 9 $smallest_index=0; 10 11 for($i=1,$len=count($arr);$i<$len;$i++) 12 { 13 if($arr[$i]<$smallest) 14 { 15 $smallest=$arr[$i]; 16 $smallest_index=$i; 17 } 18 } 19 20 return $smallest_index; //返回数组中的最小元素的索引值 21 } 22 23 /** 24 * @param $arr array 25 * @return array 26 */ 27 function selection_sort($arr) 28 { 29 $newArr=[]; 30 31 for($i=0,$len=count($arr);$i<$len;$i++) 32 { 33 $smallest_index=findSmallest($arr); 34 $newArr[]=$arr[$smallest_index]; //将数组$arr中的最小元素添加到新数组 35 unset($arr[$smallest_index]); //删除数组$arr中的(已添加到新数组)最小元素 36 $arr=array_values($arr); 37 } 38 39 return $newArr; 40 } 41 42 print_r(selection_sort([1,7,4,12,9,0]));
标签:index 列表 nbsp 位置 code UNC values value 选择
原文地址:https://www.cnblogs.com/JkiiHeisen/p/11473955.html