php实现插入排序

来源:互联网 发布:乐器调音软件 编辑:程序博客网 时间:2024/06/05 09:09

思路分析:在要排序的一组数中,假设前面的数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。

<?php  function selectSort($arr) {    $tmp=array();//双重循环完成,外层控制轮数,内层控制比较次数    $len=count($arr);    for($i=0; $i<$len-1; $i++) {        //先假设最小的值的位置        $p = $i;        for($j=$i+1; $j<$len; $j++) {            //$arr[$p] 是当前已知的最小值            if($arr[$p] > $arr[$j]) {            //比较,发现更小的,记录下最小值的位置;并且在下次比较时采用已知的最小值进行比较。                $p = $j;            }        }        //已经确定了当前的最小值的位置,保存到$p中。如果发现最小值的位置与当前假设的位置$i不同,则位置互换即可。        if($p != $i) {            $tmp = $arr[$p];            $arr[$p] = $arr[$i];            $arr[$i] = $tmp;        }    }    //返回最终结果    print_r($arr);    return $arr;}$arr=array(9,4,3,10,48,23);$rs=selectSort($arr);?>
0 0