码迷,mamicode.com
首页 > 编程语言 > 详细

选择排序

时间:2019-09-06 13:05:12      阅读:101      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!