网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 PHP两种快速排序算法实例
内容
    这篇文章主要介绍了PHP两种快速排序算法实例,本文直接给出实现代码,分别使用递归法、迭代法实现,需要的朋友可以参考下
    虽然在PHP这样的web应用开发中,我们不是太强调排序的重要性,因为PHP自身已经带了例如sort()等这样强大的排序函数,但是在一些重要的场合,例如某些高并发的场合,我想排序算法的影响已经不能忽略。所以在此介绍递归排序和迭代排序。
    递归法:
    /**
    * 递归法实现的快速排序
    */
    function quicksort($seq)
    {
    $k = $seq[0];
    $x = array();
    $y = array();
    for($i=1; $i< $_size; $i++) {
    if($seq[$i] <= $k) {
    $x[] = $seq[$i];
    } else {
    $y[] = $seq[$i];
    }
    }
    $x = quicksort($x);
    $y = quicksort($y);
    return array_merge($x, array($k), $y);
    } else {
    return $seq;
    }
    }
    迭代法:
    /**
    * 迭代法的快速排序
    */
    function quicksortx(&$seq)
    {
    $stack = array($seq);
    $sort = array();
    while ($stack) {
    $arr = array_pop($stack);
    if(count($arr) <= 1) {
    if(count($arr) == 1) {
    $sort[] = &$arr[0];
    }
    continue;
    }
    $k = $arr[0];
    $x = array();
    $y = array();
    $_size = count($arr);
    for($i =1 ;$i < $_size; $i++) {
    if($arr[$i] <= $k) {
    $x[] = &$arr[$i];
    } else {
    $y[] = &$arr[$i];
    }
    }
    !empty($y) && array_push($stack, $y);
    array_push($stack, array($arr[0]));
    !empty($x) && array_push($stack, $x);
    }
    return $sort;
    }
    使用:
    /**
    *产生一个随机数组
    */
    for($i=0;$i<5;$i++){
    $testArr[]=mt_rand(0,100);
    }
    var_dump($testArr);
    var_dump(quicksort($testArr));
    var_dump(quicksortx($testArr));
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/20 13:16:41