冒泡php_PHP冒泡排序算法(一)
在前面的文章中,我们给大家介绍了PHP算法系列之《PHP随机取一算法》。今天我们继续为大家讲解常见的PHP算法系列的相关知识点,即PHP冒泡排序算法。
冒泡排序,相信对于编程人员来说并不陌生。冒泡排序算法简单来说就是依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数。
那么之所以称为“冒泡排序”算法是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样。
下面我们就结合具体的代码示例,给大家介绍PHP冒泡排序算法的实现。(以下是升序排列,即从小到大排列)
代码示例如下:<?php
function maopao($arr){
$len = count($arr);
for($k=0;$k<=$len;$k++)
{
for($j=$len-1;$j>$k;$j--){
if($arr[$j]
$temp = $arr[$j];
$arr[$j] = $arr[$j-1];
$arr[$j-1] = $temp;
}
}
}
return $arr;
}
$arr = [2,6,2,8,2,34,5,9,2341,23];
var_dump(maopao($arr));
这里我们定义了一个maopao方法,首先我们通过count函数统计出指定数组的总长度。 然后使用双重for循环语句循环遍历数组元素并逐一比较,那么外层for循环就是用来控制循环轮次;内层for循环就是控制每轮的比较次数,并且在每轮比较后选出最大的一个值放在最后。
注意:这里我们通过临时变量$temp介质来存贮$j的值,以此循环比较两个相邻的元素,并把大的值放在后面。
输出:array (size=10)
0 => int 2
1 => int 2
2 => int 2
3 => int 5
4 => int 6
5 => int 8
6 => int 9
7 => int 23
8 => int 34
9 => int 2341
总结冒泡排序的算法原理:对一组数据,比较相邻数据的大小,将值小数据在前面,值大的数据放在后面。
本篇文章就是关于PHP冒泡排序算法的介绍,在下篇文章《PHP冒泡排序算法(二)》中,我们将通过Xdebug为大家更直观地调试运行冒泡排序算法的实现过程。
冒泡php_PHP冒泡排序算法(一)相关推荐
- 冒泡php_php 冒泡排序函数
冒泡排序算法是最基本的c语言算法之一,作为万能小强php实现起来自然也不成问题. /* * bubblesort() 冒泡排序算法 * 虽然简单但效率不高^_^ * */ function bubbl ...
- 冒泡php_php冒泡排序法
一.简述 php冒泡排序法是计算机中的一种简单的排序算法.在对数组排序时会根据数组的长度重复的去比较数组中的值,如果顺序不对就把两个数据位置进行对调,一直比较到没有需要交换的值为止完成排序. 二.为啥 ...
- j1_09_02。冒泡排序法。实现冒泡游戏功能关键算法。要求:综合使用分支、循环结构语句实现,直接输出结果不计分。
package com; /*** 任务二:实现冒泡游戏功能关键算法并绘制流程图(30 分) 原始数组:a[]={1,9,3,7,4,2,5,0,6,8} 排序后: a[]={0,1,2,3,4,5, ...
- php 冒泡查找 降序 随机数 封装,又一个PHP实现的冒泡排序算法分享
又一个PHP实现的冒泡排序算法分享 经典的冒泡排序法一直是许多程序沿用的其中一种排序法,话说冒泡排序法在效率上比PHP系统函数sort更高效.本章不讨论性能,所以就不拿它来跟系统性能做对比了. 冒泡排 ...
- php冒泡算法排序,PHP算法大全(2)冒泡排序算法解决差生排序问题
前言 算法是有用的,也是枯燥的,我们尽量用生活中的例子来描述.排序算法是算法中最基础的部分,今天我们一起来排序算法中的冒泡排序算法. 内容概要: 1.什么是冒泡算法-差生排序问题. 2.冒泡算法的动画 ...
- php语言冒泡法,PHP实现冒泡排序算法的案例
PHP实现冒泡排序算法的案例 发布时间:2020-10-23 17:39:38 来源:亿速云 阅读:84 作者:小新 这篇文章主要介绍PHP实现冒泡排序算法的案例,文中介绍的非常详细,具有一定的参考价 ...
- 【经典算法实现 3】冒泡排序算法(单向冒泡,双向冒泡)
[经典算法实现 3]冒泡排序算法 及 算法优化 一.单向冒泡排序算法 O(n^2)(从小到大) 1. 核心算法实现 2. 代码实测 二.双向冒泡排序算法 O(n^2)(从小到大) 1. 核心算法实现 ...
- python实现冒泡排序完整算法_Python实现冒泡排序算法的完整实例
冒泡排序:顾名思义就是(较小的值)像泡泡一样往上冒,(大的值)往下沉. 实现原理:依次将相邻两个数值进行比较,较小的数值移到左边,较大的数值移到右边,依次比较完第一轮后,最大的数值应该排在最右边.然后 ...
- c语言排序教学过程,C语言中冒泡排序算法教学设计
排序是计算机科学中一项重要的技术,其应用范围广.使用频率高,因此对于排序算法的研究一直是计算机专家的重点.高校的程序设计类课程也将排序算法作为重难点进行教学. 1常见的几种排序算法 1.1算法的基本概 ...
最新文章
- 【 C 】转移表(理论与实践)(实现一个简单的计算器)
- 大数运算(6)——大数阶乘(求位数)
- 【TCP/IP详解 卷一:协议】第十八章 TCP连接 的建立与终止 (2)其余内容
- jquery unbind 异步_JQuery中的bind()和unbind()的理解
- [css] 说说你对!important的理解,一般在哪些场景使用?
- php实现access数据库连接,PHP实现Access数据库连接
- 华为NP课程笔记6-路由控制
- QQ里面爱情树显示服务器繁忙,QQ情侣空间爱情树连续浇水断了怎么办 | 手游网游页游攻略大全...
- SVM支持向量机原理详解
- Efficient polynomial commitment schemes for multiple points and polynomials学习笔记
- VLAN 与 WLAN 的区别
- python绘制四叶草_python绘图四叶草
- 北京清大美博节能技术研究院励志人生格言
- 热搜第一!中国烟草总公司工资曝光,员工人均年收入超18万元!网友:简直是不锈钢饭碗!...
- 小型餐饮管理系统(c++/win32 SDK/MYSQL 数据库)
- VR开发-罗德里格公式的研究
- dubbo注册服务IP解析异常及IP解析源码分析
- 关于支付宝CertificateException: X.509 not found的那些事~づ♡ど,JDK同样的版本之间也会有问题!
- 抖音算法揭秘,百万粉丝的背后逻辑
- Java_Java多线程_Java线程池核心参数 与 手动创建线程池
热门文章
- 专升本考试计算机知识小抄,浙工大允许学生考试带一张小抄 有人抄了2万字带进考场...
- wps文档页面左右边距大小怎么调整
- 罗技键盘+android风格,罗技推新款便携无线键盘 手感类似传统键盘
- 主页被改成百度了,怎么改都不行?
- 如何用css实现一个小直角梯形
- 英语骂人的话有哪些?
- 利用Python来给老照片上色,效果惊艳到我了。这不比ps强啊?
- cad怎么倒圆角_CAD技巧:最简单的圆角矩形画法!只要30秒
- CSS ID选择器与CLASS选择器
- Linux嵌入式开发版贪吃蛇,嵌入式之贪吃蛇