1 <?php 2 /** 3 * 简单选择排序 simple selection sort 4 * 5 * 原理: 一次选定数组中的每一个数,记下当前位置并假设它是从当前位置开始后面数中的最小数min=i,从这个数的下一个数开始扫描直到最后一个数,并记录下最小数的位置min,扫描结束后如果min不等于i,说明假设错误,则交换min与i位置上数。 6 */ 7 function sort_simple_selection($list) 8 { 9 $len=count($list); 10 if(empty($len)) return$list; 11 12 for($i=0;$i<$len; $i++) 13 { 14 $min=$i; 15 for($j=$i+1; $j<$len; $j++) 16 { 17 //if($list[$j] > $list[$min]) // 从大到小 18 if($list[$j] <$list[$min]) // 从小到大 19 { 20 $min=$j; 21 22 } 23 echoimplode(',',$list)."#pos=".($min+1)." min=".$list[$min]."<br/>"; 24 } 25 if($min!=$i) 26 { 27 $temp=$list[$i]; 28 $list[$i] =$list[$min]; 29 $list[$min] =$temp; 30 } 31 echo"-------------------------<br/>"; 32 } 33 } 34 35 $list=array(4,3,2,1,5,7,3,7); 36 $list= sort_simple_selection($list);
|
请发表评论