PHP学习之插入排序的实现-php教程

资源魔 35 0
本篇文章的次要内容是用PHP完成拔出排序,简略却经典的一道算法题,没有知你能否记患了,快随小编一同回顾一下吧。

  拔出排序根本思绪:将数组分为两个区(已排序区以及未排序区),假设数组的第一个元素处于已排序区, 第一个元素之后的一切元素都处于未排序局部。排序时用到双层轮回,外层轮回用于从未排序局部中掏出待排序元素,并逐渐减少未排序局部,内层轮回用于从已排序局部寻觅拔出地位(即一直地从已排序局部寻觅比待排序元素年夜的元素), 而后将较年夜的已排序区的元素后移,后移的终极后果是已排序区元素的最初一个元素盘踞待排序元素原来的地位,罢了排序区两头空出一个地位),最初将待排序元素拔出元素后移之后留下的空位。

//拔出排序
function insert_sort($arr) {
    //猎取数组单位个数
    $count = count($arr);
    //外层轮回用于从未排序区域中掏出待排序元素
    for ($i=1; $i < $count; $i++) {
        //猎取以后需求拔出已排序区域的元素值
        $temp = $arr[$i];
        //内层轮回用于从已排序区域寻觅待排序元素的拔出地位
        for ($j=$i-1; $j >= 0; $j--) {
            //假如$arr[$i]比已排序区域的$arr[$j]小,就后移$arr[$j]
            if ($temp < $arr[$j]) {        
                $arr[$j+1] = $arr[$j];
                $arr[$j] = $temp;
            } else {
                //假如$arr[$i]没有小于$arr[$j],则对已排序区无需再排序
                break;
            }
        }
    }
    return $arr;
}

$arr = array(6, 19, 26, 62, 88, 99, 18, 16, 1);
var_dump(insert_sort($arr));
  测试后果:

  

相干教程:PHP视频教程

以上就是PHP学习之拔出排序的完成的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学 插入排序

抱歉,评论功能暂时关闭!