PHP实现冒泡排序的简单实例
1、首先我们必须弄清楚什么是冒泡排序,不理解冒泡排序的原理,我们就无法写出代码。
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
PHP实现代码:
<?php //冒泡排序方法 function bubblesort(&$arr){ //定义一个变量保存交换的值 $temp =0; for($i=0;$i<count($arr);$i++){ for($j=0;$j<count($arr)-$i-1;$j++){ if($arr[$j]>$arr[$j+1]){ //如果前面的那个数大于后面的那个数,那么他们就进行交换 $temp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$temp; } } } } $arr=array(100,99,200,5,-4,6,-7); bubbleSort($arr); print_r($arr); //数组是值传递,所以传递的时候加个&符号就是地址传递,改变外部变量 ?>
以上这篇PHP实现冒泡排序的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
php 冒泡排序 交换排序法
复制代码 代码如下: $a=array('11','2','13','4','22'); $num = count($a); for($i=0;$i<$num;$i++){ for($j=0;$j<$num;$j++){ if($a[$i]<$a[$j]){ $temp = $a[$i]; $a[$i]=$a[$j]; $a[$j]=$temp; } } } print_r($a);
-
php冒泡排序与快速排序实例详解
本文实例分析了php冒泡排序与快速排序算法.分享给大家供大家参考,具体如下: $a=array('3','8','1','4','11','7'); print_r($a); $len = count($a); //从小到大 for($i=1;$i<$len;$i++) { for($j=$len-1;$j>=$i;$j--) if($a[$j]<$a[$j-1]) {//如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])就可以了 $x=$a[$j];
-
php排序算法(冒泡排序,快速排序)
冒泡排序实现原理 ① 首先将所有待排序的数字放入工作列表中.② 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换. ③ 重复步骤②,直至再也不能交换. 代码实现 复制代码 代码如下: <?php function bubbingSort(array $array) { for($i=0, $len=count($array)-1; $i<$len; ++$i) { for($j=$len; $j>$i;
-
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
一.冒泡排序 复制代码 代码如下: //冒泡排序function bubble_sort($array){ $count=count($array); if($count <= 0){ return false; } for($i=0;$i<$count;$i++){ for($j=0;$j<$count-$i-1;$j++){ if( $array[$j] > $array[$j+1] ){
-
PHP 冒泡排序算法的实现代码
基本概念 冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面.即首先比较第1 个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数.如此下去,直至最终完成排序. 由
-
PHP冒泡排序算法代码详细解读
复制代码 代码如下: <?php $arr = array(345,4,17,6,52,16,58,69,32,8,234); $n = count($arr); for($i=1;$i<$n;$i++){ //其中的为什么$n-1是因为数组是从0开始计算的 //接下来是第一次内循环 for($j=$n-1;$j>=$i;$j--) { //如果$arr[10]<$arr[9]; //temp = $arr[9]; if($arr[$j]<$arr[$j-1]){ //$te
-
PHP 数据结构 算法描述 冒泡排序 bubble sort
复制代码 代码如下: <?php /** * 冒泡排序 bubble sort * * 原理:多次循环进行比较,每次比较时将最大数移动到最上面.每次循环时,找出剩余变量里的最大值,然后减小查询范围.这样经过多次循环以后,就完成了对这个数组的排序 */ function sort_bubble($list) { $len = count($list); if(empty($len)) return $list; for($i = 0;$i < $len; $i++) { for($j = $i
-
排序算法之PHP版快速排序、冒泡排序
一.快速排序 1.简介快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来.快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists).2.步骤从数列中挑出一个元素,称为 "基准&quo
-
又一个PHP实现的冒泡排序算法分享
经典的冒泡排序法一直是许多程序沿用的其中一种排序法,话说冒泡排序法在效率上比PHP系统函数sort更高效.本章不讨论性能,所以就不拿它来跟系统性能做对比了. 冒泡排序大概的意思是依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数.由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序.但其实在实际过程中也可以根据自己需要反过来用,大树往前放,小数往后放. <?php /** * PHP中的冒泡排序法使用 */ // 预先声明一个数组 $arr = array (1
-
php数组冒泡排序算法实例
本文实例讲述了php数组冒泡排序算法.分享给大家供大家参考,具体如下: <?php /*@冒泡排序算法 */ $array=array(5,45,22,11,32,28,35,56,17,21,92); $len=count($array);//计算数组长度 for($i=0;$i<$len-1;$i++){//需要比较$len-1轮,每一轮需要比较$len-1次 for($j=0;$j<$len-1;$j++){//需要比较$len-1次,因为循环到最后一个数时,后面没有数可以比较了,
-
基于php冒泡排序算法的深入理解
交换排序的基本思想:两两比较待排序的数据,如果发生逆序,则交换之,直到全部数据都排好序为止.•冒泡排序的基本思想:1.从后往前,扫描所有的数据,如果相邻的两个数发生逆序,则互换.--第1趟冒泡2.从后往前,扫描最后一个到第2个数据,如果相邻的两个数发生逆序,则互换.--第2趟冒泡3.如此依次进行,直到进行n-1趟冒泡,或者在某趟冒泡中,没有逆序的情况即可提前结束. 复制代码 代码如下: <script>var arr = [15,8,7,9,10,0]; var _len = arr.leng
随机推荐
- VBS基础视频教程 批处理之家broly出品
- javascript下高性能字符串连接StringBuffer类
- iOS实现UITableView左滑删除复制即用功能
- 干货分享!iOS10 SiriKit QQ适配详解
- JSP 自动刷新的实例详解
- Android实现阅读APP平移翻页效果
- Node.js调试技术总结分享
- file_get_contents("php://input", "r")实例介绍
- FCKEDITOR 的高级功能和常见问题的解决方法
- struts1之ActionServlet详解_动力节点Java学院整理
- JQuery实现动态适时改变字体颜色的方法
- MySQL处理重复数据的方法
- JavaScript中的eval()函数详解
- Windows 2003火热实用技巧
- Android Spinner 组件的应用实例
- 你不一定知道的Label的For用法
- 详解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
- python实现拓扑排序的基本教程
- Mybatis参数传递示例代码
- angular 未登录状态拦截路由跳转的方法