首页 > 软件开发 > PHP >

php 排序算法

来源:互联网 2023-03-16 19:20:57 366

越来越多的公司喜欢在PHP程序员的笔试题中增加排序算法部分,以此来印证PHP程序的计算机基础。今天给大家列出4中常见的PHP排序算法。Unp办公区 - 实用经验教程分享!

方法/步骤

  • 1

    1.冒泡排序:(优化过后的)Unp办公区 - 实用经验教程分享!

    代码如下:Unp办公区 - 实用经验教程分享!

    //冒泡排序Unp办公区 - 实用经验教程分享!

    $array = array(11,-3,51,-7,9,100,2,-56,32,21);Unp办公区 - 实用经验教程分享!

    $flag = false;Unp办公区 - 实用经验教程分享!

    for ($i = 1;$i count($array);$i ){Unp办公区 - 实用经验教程分享!

    for ($j = 0;$j count($array) - $i;$j ){Unp办公区 - 实用经验教程分享!

    if ($array[$j] > $array[$j 1]){Unp办公区 - 实用经验教程分享!

    $temp = $array[$j];Unp办公区 - 实用经验教程分享!

    $array[$j] = $array[$j 1];Unp办公区 - 实用经验教程分享!

    $array[$j 1] = $temp;Unp办公区 - 实用经验教程分享!

    $flag = true;Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    if (!$flag){Unp办公区 - 实用经验教程分享!

    break;Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    $flag = false;Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    Unp办公区 - 实用经验教程分享!

    foreach ($array as $value){Unp办公区 - 实用经验教程分享!

    echo $value.'&nbsp ';Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    php 排序算法Unp办公区 - 实用经验教程分享!

    php 排序算法Unp办公区 - 实用经验教程分享!

  • 2

    2.选择排序(自己优化了下)Unp办公区 - 实用经验教程分享!

    代码如下:Unp办公区 - 实用经验教程分享!

    $array3 = array(11,-3,51,-7,9,100,2,-56,32,21);Unp办公区 - 实用经验教程分享!

    for ($i = 0;$i count($array3) - 1;$i ){Unp办公区 - 实用经验教程分享!

    for ($j = $i 1;$j count($array3);$j ){Unp办公区 - 实用经验教程分享!

    if ($array3[$j] $array3[$i]){Unp办公区 - 实用经验教程分享!

    $temp = $array3[$i];Unp办公区 - 实用经验教程分享!

    $array3[$i] = $array3[$j];Unp办公区 - 实用经验教程分享!

    $array3[$j] = $temp;Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    Unp办公区 - 实用经验教程分享!

    foreach ($array3 as $value){Unp办公区 - 实用经验教程分享!

    echo $value.'  ';Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    php 排序算法Unp办公区 - 实用经验教程分享!

    php 排序算法Unp办公区 - 实用经验教程分享!

  • 2本页面未经许可获取自百度经验
  • 3

    3.插入排序:Unp办公区 - 实用经验教程分享!

    代码如下:Unp办公区 - 实用经验教程分享!

    $array4 = array(11,-3,51,-7,9,100,2,-56,32,21);Unp办公区 - 实用经验教程分享!

    for ($i = 1;$i count($array4);$i ){Unp办公区 - 实用经验教程分享!

    $insertVal = $array4[$i];Unp办公区 - 实用经验教程分享!

    $insertIndex = $i - 1;Unp办公区 - 实用经验教程分享!

    while ($insertIndex >=0 && $insertVal $array4[$insertIndex]){Unp办公区 - 实用经验教程分享!

    $array4[$insertIndex 1] = $array4[$insertIndex];Unp办公区 - 实用经验教程分享!

    $insertIndex--;Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    $array4[$insertIndex 1] = $insertVal;Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    foreach ($array4 as $value){Unp办公区 - 实用经验教程分享!

    echo $value.'  ';Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    php 排序算法Unp办公区 - 实用经验教程分享!

    php 排序算法Unp办公区 - 实用经验教程分享!

  • 4

    4.快速排序Unp办公区 - 实用经验教程分享!

    代码如下:Unp办公区 - 实用经验教程分享!

    function quickSort($arr){Unp办公区 - 实用经验教程分享!

    if (count($arr) 1){Unp办公区 - 实用经验教程分享!

    return $arr;Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    $key = $arr[0];Unp办公区 - 实用经验教程分享!

    $left_arr = array();Unp办公区 - 实用经验教程分享!

    $right_arr = array(); Unp办公区 - 实用经验教程分享!

    for($i=1; $i count($arr); $i ){Unp办公区 - 实用经验教程分享!

    if($arr[$i] = $key){Unp办公区 - 实用经验教程分享!

    $left_arr[] = $arr[$i];Unp办公区 - 实用经验教程分享!

    } else {Unp办公区 - 实用经验教程分享!

    $right_arr[] = $arr[$i];Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    Unp办公区 - 实用经验教程分享!

    $left_arr = quickSort($left_arr);Unp办公区 - 实用经验教程分享!

    $right_arr = quickSort($right_arr);Unp办公区 - 实用经验教程分享!

    return array_merge($left_arr, array($key), $right_arr);Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    Unp办公区 - 实用经验教程分享!

    $arr = array(11,-3,51,-7,9,100,2,-56,32,21);Unp办公区 - 实用经验教程分享!

    $arr2= quickSort($arr);Unp办公区 - 实用经验教程分享!

    foreach ($arr2 as $key=>$value){Unp办公区 - 实用经验教程分享!

    echo $value."  ";Unp办公区 - 实用经验教程分享!

    }Unp办公区 - 实用经验教程分享!

    php 排序算法Unp办公区 - 实用经验教程分享!

    php 排序算法Unp办公区 - 实用经验教程分享!

  • 注意事项

    • 建议大家最少熟练掌握两种。这里推荐冒泡排序和选择排序。Unp办公区 - 实用经验教程分享!

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!Unp办公区 - 实用经验教程分享!


    标签: PHP

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码