导航

武汉网站制作中PHP学习之插入排序的实现

发布时间:2020-01-11 20:17:42 来源:「九州科技」值得信赖的互联网服务商

  武汉做网站插入排序基本思路:将数组分为两个区(已排序区和未排序区),假定数组的第一个元素处于已排序区, 第一个元素之后的所有元素都处于未排序部分。排序时用到双层循环,外层循环用于从未排序部分中取出待排序元素,并逐步缩小未排序部分,内层循环用于从已排序部分寻找插入位置(即不断地从已排序部分寻找比待排序元素大的元素), 然后将较大的已排序区的元素后移,后移的最终结果是已排序区元素的最后一个元素占据待排序元素原来的位置,而已排序区中间空出一个位置),最后将待排序元素插入元素后移之后留下的空位。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

//插入排序

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));

  测试结果

  

最新资讯
相关推荐
服务项目
微信客服
180-7107-7883
地址:湖北省武汉市解放大道航天双城6栋2单元2503
E-mail:125435440@QQ.com
备案号:鄂ICP备13002765号-6    鄂公网安备 42010202000700号    网站地图
九州科技,您身边的互联网应用方案提供商-高端网站建设-网站制作-网站开发-网页设计-微信开发-小程序开发
高端网站建设 公众号开发 小程序制作 网站seo优化 H5活动营销 互联网产品

18071077883

提交需求