PHP算法题:如何实现冒泡排序

简介: PHP算法题:如何实现冒泡排序

算法原理:



1.比较相邻的元素,如果第一个比第二个大,那么就交换这两个元素。


2.对每一对相邻元素做同样的工作,从第一对开始到最后一对结束,最后的元素应该会是最大的数。


3.除了最后一个元素外,针对其他的元素重复以上步骤。


4.对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较为止。


实现代码:



<?php
    header("Content-type:text/html;charset=utf-8");
    // 性能最差的冒泡排序方法
    function maopao1($arr) {
    $len = count($arr);  //计算数字长度
        for ($i = 1; $i < $len; $i++) {
          // 该层循环控制需要冒泡的轮数
            for ($k = 0; $k < $len -$i; $k++) {
                if ($arr[$k] > $arr[$k+1]) {
                    $tmp = $arr[$k];
                    $arr[$k] = $arr[$k+1];
                    $arr[$k+1] = $tmp;
                }
            }
        }
        return $arr;
    }
    // 性能最好的冒泡排序方法
    function maopao2($arr) {
        // 设置变量的初始值
        $low = 0;
        $high = count($arr) -1;
        while ($low < $high) {
            // 正向冒泡,找到最大值
            for ($j = $low; $j < $high; ++$j) {
                if ($arr[$j] > $arr[$j+1]) {
                    $tmp = $arr[$j];
                    $arr[$j] = $arr[$j+1];
                    $arr[$j+1] = $tmp;
                }
            }
            --$high;
            // 放向冒泡,找到最小值
            for ($j = $high; $j > $low; --$j) {
                if ($arr[$j] < $arr[$j-1]) {
                    $tmp = $arr[$j];
                    $arr[$j] = $arr[$j-1];
                    $arr[$j-1] = $tmp;
                }
            }
            ++$low;
        }
        return $arr;
    }
    $arr = array(121,656,8997,11,56456,778,65454,314354,1121);
    echo "排序前:";
    foreach ($arr as $k => $val) {
        echo $val.' ';
    }
    echo "<br>方法一排序后:";
    $arr = maopao1($arr);
    foreach ($arr as $k => $val) {
        echo $val.' ';
    }
    echo "<br>方法二排序后:";
    $arr = maopao2($arr);
    foreach ($arr as $k => $val) {
        echo $val.' ';
    }
?>



目录
相关文章
|
13天前
|
存储 监控 算法
关于员工上网监控系统中 PHP 关联数组算法的学术解析
在当代企业管理中,员工上网监控系统是维护信息安全和提升工作效率的关键工具。PHP 中的关联数组凭借其灵活的键值对存储方式,在记录员工网络活动、管理访问规则及分析上网行为等方面发挥重要作用。通过关联数组,系统能高效记录每位员工的上网历史,设定网站访问权限,并统计不同类型的网站访问频率,帮助企业洞察员工上网模式,发现潜在问题并采取相应管理措施,从而保障信息安全和提高工作效率。
30 7
|
17天前
|
监控 算法 安全
关于公司电脑桌面监控中 PHP 二叉搜索树算法的深度剖析
在现代企业管理中,公司电脑桌面监控系统通过二叉搜索树(BST)算法保障信息安全和提高效率。本文探讨PHP中的BST在监控场景的应用,包括节点定义、插入与查找操作,并展示如何管理时间戳数据,以快速查询特定时间段内的操作记录。BST的高效性使其成为处理复杂监控数据的理想选择。
24 2
|
25天前
|
缓存 监控 算法
内网监控管理软件:PHP 语言队列算法揭秘
在数字化办公环境中,内网监控管理软件对企业的稳定运行和信息安全至关重要。本文深入介绍PHP中的队列算法及其在内网监控软件中的应用,包括监控数据收集、任务调度和日志记录等场景,通过代码示例展示其实现方法。队列算法可提高性能、保证数据顺序并实现异步处理,为企业提供高效的安全保障。
23 1
|
4月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
163 67
|
5月前
|
搜索推荐
冒泡排序算法
【10月更文挑战第19天】冒泡排序是一种基础的排序算法,虽然在实际应用中可能不是最优的选择,但对于理解排序算法的基本原理和过程具有重要意义。
|
5月前
|
算法 搜索推荐
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
本文介绍了冒泡排序、选择排序和插入排序三种基础排序算法的原理、实现代码和测试结果。
54 0
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
|
5月前
|
搜索推荐 算法 数据可视化
深入解析冒泡排序算法
深入解析冒泡排序算法
76 4
|
5月前
|
搜索推荐 C语言
排序算法--冒泡排序
排序算法--冒泡排序
35 0
|
5月前
|
存储 搜索推荐 算法
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
|
5月前
|
算法 Python
Python算法编程:冒泡排序、选择排序、快速排序
Python算法编程:冒泡排序、选择排序、快速排序
57 0

热门文章

最新文章