php实现的冒泡排序算法,还木有理解冒泡排序算法的原理的phper可以研究下,还算是比较好懂的!

//冒泡排序(一维数组)

function bubble_sort($array){

$count=count($array);

if($count <= 0){

return false;

}

for($i=0; $i

for($j=0; $j

if($array[$j] > $array[$j+1]){

$tmp=$array[$j+1];

$array[$j+1]=$array[$j];

$array[$j]=$tmp;

}

}

}

return $array;

}

//使用实例

$array=array();

for($i=0;$i<20;$i++){

$arr=rand(1000,10000);

if(!in_array($arr,$array)){

$array[]=$arr;

}else{

$i--;

}

}

$arr=bubble_sort($array);

echo '

';

print_r($arr);

冒泡排序算法基本原理

冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。

由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。

用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,…,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,…,9,对于每一个i, j的值依次为1,2,…10-i。

php冒泡排序详解笔记,PHP冒泡排序算法相关推荐

  1. 一周刷爆LeetCode,算法da神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记

    一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记 教程与代码地址 P1 出圈了!讲课之外我们来聊聊 ...

  2. Java 八大排序之冒泡排序详解

    Java 八大排序之冒泡排序详解 分析冒泡排序 数组[24,69,80,57,13] 第1轮排序:目标把最大数放在最后 第1 次比较:[24,69,80,57,13] 第2 次比较:[24,69,8 ...

  3. php冒泡程序讲解,PHP冒泡排序详解

    PHP冒泡排序详解 function BubbleSort($str) //定义一个名为BubbleSort的函数,它有一个参数叫$str,这个参数必须是一个数组,这个数组里包含需要排序的一系列字符. ...

  4. 20191007:选择排序,插入排序,冒泡排序详解

    选择排序,插入排序,冒泡排序详解 描述 图例 代码实现 描述 选择排序:将要排序的对象分作两部份,一个是已排序的,一个是未排序的,从后端未排序部份选择一个最小值,并放入前端已排序部份的最后一个. 插入 ...

  5. javascript冒泡排序详解---kalrry

    javascript冒泡排序详解---kalrry 一.什么是冒泡排序 二.举个例子 一.什么是冒泡排序 冒泡排序,Bubble Sort,通过依次来比较相邻两个元素的大小,在每一次的比较的过程中,两 ...

  6. 深度 | 详解可视化利器t-SNE算法:数无形时少直觉

    T 分布随机近邻嵌入(T-Distribution Stochastic Neighbour Embedding)是一种用于降维的机器学习方法,它能帮我们识别相关联的模式.t-SNE 主要的优势就是保 ...

  7. Mask_RCNN翻译和详解笔记一(原文翻译+源代码+代码使用说明)

    Mask_RCNN翻译和详解笔记一(原文翻译+源代码+代码使用说明) 2018年06月01日 23:45:47 阅读数:332 原文:https://github.com/matterport/Mas ...

  8. TCP-IP详解笔记3

    TCP-IP详解笔记3 地址解析协议 IP协议的设计目标是为跨越不同类型物理网络的分组交换提供互操作. 网络层软件使用的地址和底层网络硬件使用的地址之间进行转换. 对于TCP/IP网络,地址解析协议( ...

  9. Kali linux无线网络渗透详解笔记

    Kali linux无线网络渗透详解笔记 第一章:搭建渗透环境测试环境 第二章:WiFi网络的构成 第三章:监听WiFi网络 第四章:捕获数据包 第五章: 分析数据包 第六章:获取信息 第七章:WPS ...

最新文章

  1. 北理工硕士生「一字不差」抄袭顶会投稿,网友:买论文被忽悠了?
  2. VMware安装MikroTik RouterOS chr
  3. 一场虚拟的鄂尔多斯婚礼 (图)
  4. YUI事件体系之Y.CustomEvent
  5. 016.OpenStack及云计算(面试)常见问题
  6. 探索Google App Engine背后的奥秘(5)- Datastore的设计(转载)
  7. 如何恢复电脑中的CHK文件?
  8. Vscode信任问题
  9. cocos2dx 制作一个简单的三消游戏
  10. 自动注册11平台账号
  11. ajax中xhr监听,在firefox插件中监听http响应时确定XHR(ajax)响应
  12. php 数字转人民币,php数字转人民币金额大写
  13. linux unbuntu
  14. 【滴滴拉屎】一款能按照坑型找厕所的神器!
  15. [NACOS HTTP-POST] The maximum number of tolerable server reconnection errors has been reached
  16. Morsel-Driven Parallelism: 一种NUMA感知的并行Query Execution框架
  17. 初识微服务之Eureka
  18. 什么是JSON(详解)
  19. 电脑桌面录制直播嵌入网页
  20. 经典功率谱估计(直接法、间接法、直接法的改进(包括Bartlett法、Welch法))

热门文章

  1. matlab怎么输出加粗的字,matlab boxplot 加粗
  2. JSP的初步学习(2)
  3. 使用自定义注解实现Redis分布式锁
  4. 一个简易的网络带宽压测方法
  5. 动手撸一个SQL规范检查工具
  6. 360浏览器人机交互
  7. Vue中的scoped
  8. 别人发过来的压缩包打开后,文件夹名有一部分是乱码的解决办法
  9. 关于数据结构链表问题(C语言实现)—— 线性表顺序存储设计与实现
  10. 海龙灯具城附近的计算机学校在哪里,海龙灯饰城