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

来源:互联网 发布:油气田开发工程 知乎 编辑:程序博客网 时间:2024/06/10 23:33

(算法用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:每一趟找出最大元素之后,都要进行交换,即找出最大元素与此时剩余数组元素的最后一个进行交换,交换是通过元素的数组下标来实现的。
表格演示:
选择排序的表格演示

1 0
原创粉丝点击