您的位置:首页 > 其它

三个简单的算法——选择排序

2017-01-22 17:57 225 查看
(算法用php实现)

先贴代码

选择排序

<?php
echo "<br/>快速排序:<br/>";
$arr = array(2,3,5,1,7,3,9,12,324,0);
$n = count($arr);
for($i = 0;$i < $n;++$i){
$max = $arr[0];
$pos = 0;
for($j = 0;$j < $n - $i;++$j){
if($arr[$j] > $max){
$max = $arr[$j];
$pos = $j;
}
}
$t = $arr[$n-$i-1];
$arr[$n-$i-1] = $max;
$arr[$pos] = $t;
}
echo "排序后:<br/>";
print_r($arr);
?>


显示结果:



选择排序简介:

假设数组有n个元素,第一次找出最大的元素和它的下标,与数组末尾那个元素进行交换;第二次遍历找出目前n-1个元素中最大的元素和它的下标,并且与目前最后一个交换。依此类推,直至只剩最后一个元素。

要求:

1:假设数组元素个数为n个;

2:进行查找最大值的趟数为n-1;

3:每一趟都要求出剩余元素中的最大值,每一次剩余元素个数都比上一次少一个,第一次一共有n个元素;

4:每一趟找出最大元素之后,都要进行交换,即找出最大元素与此时剩余数组元素的最后一个进行交换,交换是通过元素的数组下标来实现的。

表格演示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  选择排序