PHP 排序算法原理及总结

简介: 冒泡排序原理原理描述:一次比较俩个相邻的元素,大的元素后移,小的元素前移(交换位置)。直到找出最大的元素。就像是气泡一样,大的向下沉,小的向上冒。流程:有一个无序数组 $arr = [8, 9, 3, 6, 1, 4] 总结:外层循环要元素数 - 1次。

冒泡排序原理
原理描述:

一次比较俩个相邻的元素,大的元素后移,小的元素前移(交换位置)。直到找出最大的元素。就像是气泡一样,大的向下沉,小的向上冒。

流程:

有一个无序数组 $arr = [8, 9, 3, 6, 1, 4]

__20191102191206

总结:

  1. 外层循环要元素数 - 1次。负责找出最大值。
  2. 内层循环逐层递减一次。负责俩俩相比较,交换元素位置。

代码:
__20191102194156
快速排序原理(递归)

原理描述:

从数组中取第一个值作为参照物,比这个值小的放在左边,比这个值大的放在右边,这样就会有俩个新的数组,递归处理俩个数组,然后左边,参照物,右边合并。注意:有递归就要找到递归出口,不然就会一直递归下去。

流程:

用文字叙述流程太麻烦,就从网上找了一个图片,过程很清晰。
__20191102194258
代码:
__20191102194340
插入排序

原理描述:

将要排序的数组分成俩个部分,取数组第一个元素放有序集合中,剩下的放到无序集合中。将需要排序的数,与前面已经排好序的数据从后往前进行比较,直到找到小于或者等于它的数,使其插入到相应的位置。

我的记忆方法:

假设有俩个箱子,第一个箱子是透明并且是空的,要用来装有序元素,第二个箱子是不透明并且是满的,装无序元素。(其实装什么都行,你喜欢的让你容易记住的最好)。

1.第一步:在不透明箱子里随便拿一个元素,直接扔到透明的箱子里
2.第二步:再从不透明的箱子里拿出一个元素,放进透明箱子里前,做比较。如果大就放后面,如果小就放前面。
3.重复第二步,但是我们每次需要比较的次数增加了,因为透明箱子里元素多了,直到找到合适的位置。

流程:
__20191102194408
__20191102194436
选择排序

原理描述:

每次一次从数组中取出最小元素或者最大元素,放到指定位置。

第一步:给第一个元素一个圣火令,和后面到每个元素比较,(我是取最小元素)。遇到比它小到元素就把这个圣火令给它,知道把圣火令交给最小元素手里。

第二步:交换位置,圣火令交给第二哥元素,重复第一步。

流程:
__20191102194506
__20191102194521
上就是PHP 排序算法原理及总结的详细内容,更多请关注php技术交流群:link

相关文章
|
7月前
|
存储 算法 安全
控制局域网电脑上网的 PHP 哈希表 IP 黑名单过滤算法
本文设计基于哈希表的IP黑名单过滤算法,利用O(1)快速查找特性,实现局域网电脑上网的高效管控。通过PHP关联数组构建黑名单,支持实时拦截、动态增删与自动过期清理,适用于50-500台终端场景,显著降低网络延迟,提升管控灵活性与响应速度。
298 8
|
7月前
|
存储 监控 算法
基于 PHP 布隆过滤器的局域网监控管理工具异常行为检测算法研究
布隆过滤器以其高效的空间利用率和毫秒级查询性能,为局域网监控管理工具提供轻量化异常设备检测方案。相比传统数据库,显著降低延迟与资源消耗,适配边缘设备部署需求,提升网络安全实时防护能力。(238字)
286 0
机器学习/深度学习 算法 自动驾驶
1385 0
|
8月前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
1517 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
9月前
|
传感器 算法 定位技术
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
302 2
|
9月前
|
算法
离散粒子群算法(DPSO)的原理与MATLAB实现
离散粒子群算法(DPSO)的原理与MATLAB实现
463 0
|
10月前
|
机器学习/深度学习 人工智能 编解码
AI视觉新突破:多角度理解3D世界的算法原理全解析
多视角条件扩散算法通过多张图片输入生成高质量3D模型,克服了单图建模背面细节缺失的问题。该技术模拟人类多角度观察方式,结合跨视图注意力机制与一致性损失优化,大幅提升几何精度与纹理保真度,成为AI 3D生成的重要突破。
1357 0
|
10月前
|
算法 区块链 数据安全/隐私保护
加密算法:深度解析Ed25519原理
在 Solana 开发过程中,我一直对 Ed25519 加密算法 如何生成公钥、签名以及验证签名的机制感到困惑。为了弄清这一点,我查阅了大量相关资料,终于对其流程有了更清晰的理解。在此记录实现过程,方便日后查阅。
1414 0
|
11月前
|
消息中间件 存储 缓存
zk基础—1.一致性原理和算法
本文详细介绍了分布式系统的特点、理论及一致性算法。首先分析了分布式系统的五大特点:分布性、对等性、并发性、缺乏全局时钟和故障随时发生。接着探讨了分布式系统理论,包括CAP理论(一致性、可用性、分区容错性)和BASE理论(基本可用、软状态、最终一致性)。文中还深入讲解了两阶段提交(2PC)与三阶段提交(3PC)协议,以及Paxos算法的推导过程和核心思想,强调了其在ZooKeeper中的应用。最后简述了ZAB算法,指出其通过改编的两阶段提交协议确保节点间数据一致性,并在Leader故障时快速恢复服务。这些内容为理解分布式系统的设计与实现提供了全面的基础。

热门文章

最新文章