#!/usr/bin/python
def select_sort(li):#循环列表依次拿出最小的值将值放在第一个位置
for i in range(len(li)-1): #最后一个数肯定是最大或者最小 不需要比较 所以循环次数减少1
min_loc = i #假设列表第一个数为最小数
for j in range(i+1,len(li)): #循环无序列表 i+1表示不和自己比较 无序列表的长度是逐渐缩短的
if li[j] < li[min_loc]: #将无序列表的第一个数和有序列表的第一个数进行比较 小于则是进行升序 大于则是降序
min_loc = j #将列表中的下标进行更换
li[i],li[min_loc] = li[min_loc],li[i] #以下标的形式将数值进行更换
#时间复杂度为 O(n^2)
__________
//选择排序 PHP
//选择排序
function select_sort($li)
{
$li_lenght = count($li);
for ($i=0; $i < $li_lenght-1; $i++) {
$min_local = $i;
//echo $min_local;
echo $li[$min_local];
for ($j=$i+1; $j < $li_lenght; $j++) {
if ($li[$min_local] < $li[$j]) { //如果拿出来的值小于循环的值 则将拿出来的值索引和比较的值换
$min_local = $j;
}
}
// echo $j;
// echo $min_local;
$temp = $li[$min_local]; //将值进行互换
$li[$min_local] = $li[$i];
$li[$i] = $temp;
}
var_dump($li);
}
$li = [1,0,3,4,2,9,7,8,5];
//$li = [1,2,3,4,5,6,7,8,9];
select_sort($li);
转载于:https://www.cnblogs.com/ikai/p/11599673.html