又一个PHP实现的冒泡排序算法分享_php实例

经典的冒泡排序法一直是许多程序沿用的其中一种排序法,话说冒泡排序法在效率上比PHP系统函数sort更高效。本章不讨论性能,所以就不拿它来跟系统性能做对比了。

冒泡排序大概的意思是依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数。由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。但其实在实际过程中也可以根据自己需要反过来用,大树往前放,小数往后放。

<?php
/**
 * PHP中的冒泡排序法使用
 */

// 预先声明一个数组
$arr = array (12,45,28,30,88,67);
echo "原数组";
print_r($arr);
echo "<br/>";
//冒泡排序
function maopao($arr){
  // 进行第一层遍历
  for($i=0,$k=count($arr);$i<$k;$i++) {
    // 进行第二层遍历 将数组中每一个元素都与外层元素比较
    // 这里的i+1意思是外层遍历当前元素往后的
    for ($j=$i+1;$j<$k;$j++) {
      // 内外层两个数比较
        if($arr[$i]<$arr[$j]){
        // 先把其中一个数组赋值给临时变量
          $temp = $arr[$j];
        // 交换位置
        $arr[$j] = $arr[$i];
        // 再从临时变量中赋值回来
        $arr[$i] = $temp;
      }
    }
  }
  // 返回排序后的数组
  return $arr;
}

// 直接打印排序后的数组
echo '排序后';
print_r(maopao($arr));

?>

通过以上代码执行结果

原数组

复制代码 代码如下:

Array ( [0] => 12 [1] => 45 [2] => 28 [3] => 30 [4] => 88 [5] => 67 )

排序后

复制代码 代码如下:

Array ( [0] => 88 [1] => 67 [2] => 45 [3] => 30 [4] => 28 [5] => 12 )

这就是冒泡法实例,简单吧!没有神马难度的。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
冒泡排序算法
冒泡排序并行算法实例、冒泡排序算法实例、冒泡排序算法、c语言冒泡排序算法、php 冒泡排序算法,以便于您获取更多的相关知识。

时间: 2024-12-06 17:11:28

又一个PHP实现的冒泡排序算法分享_php实例的相关文章

一个经典的PHP验证码类分享_php实例

我们通过PHP的GD库图像处理内容,设计一个验证码类Vcode.将该类声明在文件vcode.class.php中,并通过面向对象的特性将一些实现的细节封装在该类中.只要在创建对象时,为构造方法提供三个参数,包括创建验证码图片的宽度.高度及验证码字母个数,就可以成功创建一个验证码类的对象.该类的声明代码如下所示: <?php class Vcode { private $width; //宽 private $height; //高 private $num; //数量 private $code

PHP将URL转换成短网址的算法分享_php实例

前言 短网址服务,可能很多朋友都已经不再陌生,现在大部分微博.手机邮件提醒等地方已经有很多应用模式了,并占据了一定的市场.估计很多朋友现在也正在使用. 短链接的好处: 1.内容需要: 2.用户友好: 3.便于管理. 下面是用PHP实现短网址转换的算法,代码如下: PHP <?php //短网址生成算法 class ShortUrl { //字符表 public static $charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghij

php实现的短网址算法分享_php实例

每个网址用6个字符代替,(6^32) 最多可以拥有1,073,741,824个短网址. 当然,你还可以记录更详细的信息,如访问记录,创建时间等. 如果真不够用了,还可以删掉很久不用的. 复制代码 代码如下: function shorturl($input) {   $base32 = array (     'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',     'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',     'q', '

体育彩票排列三组选三算法分享_php实例

复制代码 代码如下: function arrange($arr){$new_arr = array();$c = count($arr);foreach($arr as $key=>$vo){  $lin = $arr;  array_splice($lin,$key,1);    for($l=0;$l<$c-1;$l++){   $larr = array();   $larr[] = $lin[$l];   $larr[] = $vo;   $larr[] = $vo;   $new_

JavaScript实现的一个计算数字步数的算法分享_javascript技巧

这两天看了下某位大神的github,知道他对算法比较感兴趣,看了其中的一个计算数字的步数算法,感觉这个有点意思,所以就自己实现了一个. 算法描述与实现原理 给出一个整型数字,统计出有多少种走法可以到达目标,比如一个数字4,可以有下面几种走法 复制代码 代码如下:     [ 1, 3 ]         [ 4 ]     [ 1, 1, 2 ]         [ 2, 2 ]     [ 1, 1, 1, 1 ] 其实通过上面的组合可以得出下面的结论. 1.先列出所有项是1的组合 2.依次从

PHP四种基本排序算法示例_php实例

许多人都说算法是程序的核心,算法的好坏决定了程序的质量.作为一个初级phper,虽然很少接触到算法方面的东西.但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具.这里介绍冒泡排序,插入排序,选择排序,快速排序四种基本算法,分析一下算法的思路. 前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序. $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好的序

PHP版本常用的排序算法汇总_php实例

//1.冒泡排序 function bubble_sort($arr){ $n = count($arr); for($i=0;$i<$n-1;$i++){ for($j=$i+1;;$j<$n-$i;$j++){ if($arr[$j]<$arr[$i]){ $temp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $temp; } } } }  //2.归并排序 //merge函数将指定的两个有序数组(arr1arr2,)合并并且排序 //我

php遍历文件夹和文件列表示例分享_php实例

为PHP遍历目录和文件列表写了一个简单的类,并附上使用实例,大家参考使用吧 复制代码 代码如下: <?phpdefine('DS', DIRECTORY_SEPARATOR); class getDirFile{     //返回数组    private $DirArray  = array();    private $FileArray = array();    private $DirFileArray = array();     private $Handle,$Dir,$File

一个比较不错的PHP日历类分享_php实例

说到对时期和时间的处理,就一定要介绍一下日历程序的编写.但一提起编写日历,大多数人都会认为日历的作用只是为了在页上显示当前的日期,其实日历在我们的开发中有更重要的作用.例如我们开发一个"记事本"就需要通过日历设定日期,还有一些系统中需要按日期去排任务,也需要日历,等等.本例涉及的日期和时间函数并不是很多,都是前面介绍的内容,主要是通过一个日历类的编写,巩固一下前面介绍过的面向对象的语法知识,以及时间函数应用,最主要的是可以提升初学者的思维逻辑和程序设计能力.将日历类Calendar声明