扣丁学堂PHP培训分享PHP实现冒泡排序方法实例
在现如今,随着PHP程序开发中我们会遇到很多排序,而冒泡排序也是常见之一,想要做好PHP开发,那么我们肯定要很轻松的使用PHP来实现冒泡排序,本篇文章来给大家讲讲PHP冒泡排序!我们一起来看看PHP实现冒泡排序的多种方法吧!
冒泡排序是非常容易理解和实现,以从小到大排序举例:
设数组长度为N。
1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。
2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就"沉"到数组第N-1个位置。
3.N=N-1,如果N不为0就重复前面二步,否则排序完成。
方案一:
<?php
functionbubble1_sort($array)
{
$count=count($array);
if($count<=1){
return$array;
}
for($i=0;$i<$count;$i++){
for($j=0;$j<$count;$j++){
if($array[$i]<$array[$j]){
$temp=$array[$i];
$array[$i]=$array[$j];
$array[$j]=$temp;
}
}
}
return$array;
}
方案二:
<?php
functionbubble2_sort($array)
{
$count=count($array);
if($count<=1){
return$array;
}
for($i=0;$i<$count;$i++){
for($j=1;$j<$count-$i;$j++){
if($array[$j-1]>$array[$j]){
$temp=$array[$j-1];
$array[$j-1]=$array[$j];
$array[$j]=$temp;
}
}
}
return$array;
}
方案三:
设置一个标志,如果这一趟发生了交换,则为true,否则为false。明显如果有一趟没有发生交换,说明排序已经完成。
<?php
functionbubble3_sort($array)
{
$count=count($array);
if($count<=1){
return$array;
}
$flag=true;
$j=$count;
while($flag){
$flag=false;
for($i=1;$i<$j;$i++){
if($array[$i-1]>$array[$i]){
$temp=$array[$i-1];
$array[$i-1]=$array[$i];
$array[$i]=$temp;
$flag=true;
}
}
$j--;
}
return$array;
}
方案四:
如果有100个数的数组,仅前面10个无序,后面90个都已排好序且都大于前面10个数字,那么在第一趟遍历后,最后发生交换的位置必定小于10,且这个位置之后的数据必定已经有序了,记录下这位置,第二次只要从数组头部遍历到这个位置就可以了。
<?php
functionbubble4_sort($array)
{
$count=count($array);
if($count<=1){
return$array;
}
$flag=$count;
while($flag>0){
$k=$flag;
$flag=0;
for($j=1;$j<$k;$j++){
if($array[$j-1]>$array[$j]){
$temp=$array[$j-1];
$array[$j-1]=$array[$j];
$array[$j]=$temp;
$flag=$j;
}
}
}
return$array;
}
方案五:
<?php
functionbubble_sort($array)
{
$count=count($array);
if($count<=1){
return$array;
}
for($i=$count-1;$i>0;$i--){
$flag=false;
for($j=0;$j<$count;$j++){
if($array[$j]>$array[$j+1]){
$temp=$array[$j];
$array[$j]=$array[$j+1];
$array[$j+1]=$temp;
$flag=true;
}
}
if(!$flag)
break;
}
return$array;
}
以上就是PHP实现冒泡排序多种方法的详细介绍,最后想要了解更多关于PHP开发发展前景趋势,请关注扣丁学堂官网、微信等平台,扣丁学堂PHP培训IT职业在线学习教育平台为您提供权威的PHP视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的一套PHP视频教程课程,让你快速掌握PHP从入门到精通开发实战技能。扣丁学堂PHP技术交流群:374332265。
支付宝送红包,苹果绿了经常在AppStore中购买App或是其他消费的小伙伴,想必都知道苹果会不定时联合其他品牌推出AppStore充值9折活动。有充值需求的小伙伴,都能在这个活动中白嫖到一些福利。由于
乐橙专业家用摄像机TP7S,快给您的家上个安心锁吧近几年,家庭盗窃案件只增不减,甚至有一些不法分子图谋不轨,导致了更多的悲剧发生。。家是我们的港湾,不能让它被破坏,一定要提前预防,阻止悲剧的发生。市面上的家用摄像机可以说是琳琅满目
36氪首发向金融机构提供IT运维保障服务,争锋科技数千万元A轮融资近日,36氪获悉,金融行业IT系统运维保障企业南京争锋信息科技有限公司(下称争锋科技)宣布完成A轮数千万元融资,投资方为咏圣资本。本次融资资金,主要用于人才引进产品矩阵的研发市场拓
微信一物一码红包系统红包系统定制开发微信一物一码红包,相信大家在平常购物消费时候也见过,对此并不陌生。在互联网时代,一物一码红包是以一物一码系统为载体,以红包奖励实物奖奖励,积分奖励方式来吸引用户进行扫码。而通过一物
苹果准备推出新款Mac电脑搭载下一代M2芯片财经网科技4月15日讯,据新浪科技消息,根据开发者日志,苹果已开始对几款搭载下一代M2芯片的新款Mac电脑进行广泛的内部测试。苹果正致力于开发搭载自主处理器芯片性能更强大的电脑产品
苹果正在M2芯片曝光,至少四颗本文转载自半导体芯闻公众号彭博社报道,根据开发者日志,苹果已开始对几款配备下一代M2芯片的新Mac机型进行广泛的内部测试,这是其推动使用自研处理器制造更强大计算机的一部分。日志显示
向日葵UUpro评测不用ROOT系统,就能远程控制手机让其大放异彩前言随着手机更新换代的速度越来越快,很多年轻人都会隔三岔五的换新机,因此每家每户都会有那么几部淘汰下来的旧手机,而这些旧手机的最好归宿,就是给家里的老人继续使用,毕竟老年人对手机性
特斯拉Model概念机曝光前后双摄像头配骁龙8Gen1作为美国科技的两大巨头,苹果和特斯拉在商业上几乎没有交集。然而,随着5G技术和物联网技术的日益成熟,过去设备之间的孤岛形式正在被打破。对于任何互联网设备来说,独处变得越来越困难。来
盘点一下即将要发布的几款手机时间步入四月,新机机潮已经到来,在这个月里手机是一个接一个的发布,从联通发布优畅享50plus到黑鲨5系列,再从荣耀play6T系列到vivo发布XnoteXfold和pad,四月
你的手机号码月租是多少?现在所用号码,是10年刚踏入社会工作办理的,应该算联通第一批无月租号码,白号什么都没有,可以单独开通来电显示,一天一毛钱,随时可以关闭,以前分潍坊五区,区内每分钟一毛二,区外3毛,
手机连接电脑读取文件手机连接电脑读取文件一打开手机USB调试模式打开手机系统设置二下载驱动保存到电脑,请记住保存的位置三用数据线将手机连接到电脑强烈建议大家使用手机原配的USB数据线!!四安装驱动如果