php的四种基本算法_php四种算法-程序员宅基地

技术标签: 算法  PHP  

<?php
$arr = array(13,1,65,4,6,41,61,68);
$num = count($arr);
/**
 * 冒泡排序
 */
for ($i=1; $i < $num ; $i++)
    {
        for ($j=0; $j < $num-$i ; $j++)
            {
                if($arr[$j] > $arr[$j+1])
                {
                    $data = $arr[$j+1];
                    $arr[$j+1] = $arr[$j];
                    $arr[$j] = $data;
                }
            }
    }
    echo "<pre>";
    print_r($arr);
/**
 * 选择排序
 */
for ($i=0; $i < $num-1; $i++)
{
        $p = $i;
        for ($j=$i+1; $j <$num ; $j++)
        {
            if($arr[$p] > $arr[$j])
            {
                $p = $j;
            }
        }
        if($p != $i)
        {
            $data = $arr[$p];
            $arr[$p] = $arr[$i];
            $arr[$i] = $data;
        }
}
echo "<pre>";
print_r($arr);

/**
 * 插入排序
 */

for ($i=1; $i <$num ; $i++)
{
    $data = $arr[$i];
    for ($j=$i-1; $j >=0; $j--)
    {
        if($data < $arr[$j])
        {
            $arr[$j+1] = $arr[$j];
            $arr[$j] = $data;
        }

    }
}
echo "<pre>";
print_r($arr);
/**
 * 快速排序
 */
if($num <= 1)
{
    return $arr;
}
$base_num = $arr[0];
$left = array();
$right = array();
for ($i=1; $i < $num; $i++)
{
    if($base_num > $arr[$i])
    {
        $left[] = $arr[$i];
    }
    else
    {
        $right[] = $arr[$i];
    }
}
echo "<pre>";
print_r(array_merge($left,array($base_num),$right));
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Mr_Janan/article/details/51887115

智能推荐

get java思路_getforentity urivariables-程序员宅基地

文章浏览阅读382次。细思极恐-你真的会写java吗?导语自2013年毕业后,今年已经是我工作的第4个年头了,总在做java相关的工作,终于有时间坐下来,写一篇关于java写法的一篇文章,来探讨一下如果你真的是一个java程序员,那你真的会写java吗?笔者是一个务实的程序员,故本文绝非扯淡文章,文中内容都是干货,望读者看后,能有所收获。文章核心其实,本不想把标题写的那么恐怖,只是发现很多人干了几年_getforentity urivariables

左移<< 和 右移>>的通俗计算_左移右移结果能为小数吗-程序员宅基地

文章浏览阅读196次。左移<< 和 右移>> 是对二进制的位运算。使用位运算能提高效率,但不易阅读左移右移的原理可以参考这两个博文不在乎原理的话,左移右移是有通俗的使用方法的一、正数_左移右移结果能为小数吗

ERROR:Docker Got permission denied while trying to connect to the Docker daemon socket at unix_error: docker: permission denied while trying to c-程序员宅基地

文章浏览阅读1.3k次,点赞3次,收藏4次。welcome to my blog执行docker命令时报错:Docker Got permission denied while trying to connect to the Docker daemon socket at unix解决方法一: 将当前用户添加到docker组中执行sudo usermod -aG docker $USER重启后再次尝试解决方法二: 放开相关目录权限..._error: docker: permission denied while trying to connect to the docker daemo

常用的ORCL函数_orcl时间函数查询-程序员宅基地

文章浏览阅读1.1k次。以下是对oracle中的常用函数进行了汇总介绍,需要的朋友可以过来参考下 一、运算符算术运算符:+ - * / 可以在select 语句中使用连接运算符:|| select deptno|| dname from dept; 比较运算符:> >= = != 逻辑运算符:not and or 集合运算符: intersect ,union, union all_orcl时间函数查询

教你如何在Pycharm中加载和使用虚拟环境_怎么在pycharm中利用虚拟环境-程序员宅基地

文章浏览阅读752次。/1 前言/这篇文章基于虚拟环境的搭建,也相对比较基础,主要是介绍如何在Pycharm中加载和使用虚拟环境。/2 具体步骤/根据上篇文章中虚拟环境的搭建,具体操作步骤在此不再赘述,我们已经搭建了虚拟环境,接下来我们基于这套虚拟环境,需要进行导入到Pycharm中去,以存放我们自己的项目,下面介绍具体的操作步骤。1、打开Pycharm,然后依次点击左上方的file->Settings,如下图所示。2、之后依次Project->Project Interpreter,如下图所示。3、_怎么在pycharm中利用虚拟环境

GD32 flash写保护解除_gd32程序写保护-程序员宅基地

文章浏览阅读2.4k次,点赞6次,收藏15次。gd32 内部flash 锁死_gd32程序写保护

随便推点

MFC注册热键的方法(RegisterHotKey)_mfc registerhotkey-程序员宅基地

文章浏览阅读8.5k次。利用RegisterHotKey注册多个热键1、自己定义系统的WM_HOTKEY消息,如:#define ID_EXIT 0x5000#define ID_SHOW 0X6000 2、声明OnHotkey方法,在.h头文件的位置如下// Generated message map functionsafx_msg LONG OnHotKey(WPARAM w_mfc registerhotkey

第五章Session和Application对象----学习笔记_创建session对象将触发什么事件-程序员宅基地

文章浏览阅读1.1k次。利用session对象记载单个用户信息什么是session?Session信息保存在服务器端的一块内存区域中,当每一个用户开始访问时(也叫开始一个会话),服务器端就会给该用户建立一个session对象,在服务器端内存中给他分配一块区域用来储存用户信息,当该用户结束访问(也叫结束一个会话),服务器就会清除这个Session对象,并释放相应的内存区域Session的属性,方法和事..._创建session对象将触发什么事件

LaTeX--1--了解LaTeX_latex为什么不能小写-程序员宅基地

文章浏览阅读562次。1. 为什么要使用 LaTeX ?高二那年,数学竞赛课上,来了一个年轻的老师。他打开了他给我们带来的习题,投影在大屏幕上。起初我们并不以为意,直到我们发现了其中有个地方打错了字。“噢我改一下……” 他打开了另外一个中英夹杂的文档,在里面改了几个字,然后点了一个键,打开了 Windows 的控制台。上面产生了大量的输出,几秒钟后,习题文档跳了出来,原来的错字已经改好了。帅呆了。课间的时候我们端详了老师电脑上的文档,发现那不是我们常用的 Microsoft Word,而是一个 PDF 文件。其中的数学公_latex为什么不能小写

错误代码“err_connection_timed_out”的解决方案(某些网站不能登录,出现登陆超时)-程序员宅基地

文章浏览阅读10w+次,点赞60次,收藏210次。错误代码“err_connection_timed_out”的解决方案问题描述解决方案1:清除浏览器历史记录和缓存(亲测有效)解决方案2:修改Windows主机File解决方案3:刷新或更新DNS和IP地址 (亲测有效)解决方案4:过滤防火墙和网站解决方案5:更改LAN设置 (亲测有效)解决方案6:与服务器提供商保持联系问题描述本人在学校使用内网,自带IP6,理论上许多外网是能够访问的,但是偏..._timed_out

【Linux】【Advanced Packaging Tools】Ubuntu下 sudo apt update 常见问题及处理_stable release: signe-程序员宅基地

文章浏览阅读4.5k次,点赞6次,收藏15次。本文记录在使用 Ubuntu 过程中,处理 sudo apt update 报错的笔记._stable release: signe

Scala天天酷跑小游戏_虚拟机中的idea中scala写一款小游戏-程序员宅基地

文章浏览阅读2k次。需求分析:实现《天天酷跑》的核心逻辑,该游戏具有登录、注册、玩家操作、结束等功能。注册模块:需要玩家身份信息为:用户名 密码 昵称 邮箱登录模块:需要玩家信息为:用户名 和 密码玩家(Person)功能:跳跃up(y坐标的改变),右移功能(right),左移功能left(修 改x的坐 标),判断玩家是否越界的功能。玩家具有得分、跑酷距离、生命值属性。初始位置坐标为(x,y),补充自由下落功能(注意y坐标的临界点),login方法,注册方法,(建议可以通过在控制台内输入w a d._虚拟机中的idea中scala写一款小游戏