PHP实现冒泡排序的代码,如何处理长尾词排序问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计439个文字,预计阅读时间需要2分钟。
布尔变量 $exchange$,用于监视每次($i+1$)次冒泡排序是否发生相邻元素交换的情况。如果$exchange$为true,则继续进行下一次冒泡排序。如果没有发生相邻元素交换,则说明排序完成。
<meta charset="gb2312" /> <?PHP //数组元素值从小到大排序 $arr=array(1,42,0,3,15,7,19,26); foreach($arr as $k=>$v) echo " index:$k -- value:$v<br>"; echo "<hr color=red />"; echo "After applying sort() <br>"; $ar=$arr; //定义一个中间变量 sort($ar); print_r($ar); echo '<br><hr color=red />'; echo "使用 冒泡排序"; $temp=0; //外层循环的次数 for($i=0;$i<count($arr)-1;$i++){ $exchange=false; //内层之间向右相邻的两个数组元素值进行比较 for($j=0;$j<count($arr)-1-$i;$j++){ //当后一个数组元素值大于前一个数组原数值 if($arr[$j]>$arr[$j+1]){ //数组元素交换 $temp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$temp; $exchange=true; } } //外层数组循环的次数是---count($arr)-1 //-1的原因(数组元素值比较时是两个比较 //如3个数组元素比较2次 echo "这是第".($i+1)."次比较的结果"; echo "<pre/>"; print_r($arr); echo "<pre/>"; if (!$exchange) break; } echo "<hr color=red />"; echo "<pre/>"; print_r($arr); echo "<pre/>" ?>
本文共计439个文字,预计阅读时间需要2分钟。
布尔变量 $exchange$,用于监视每次($i+1$)次冒泡排序是否发生相邻元素交换的情况。如果$exchange$为true,则继续进行下一次冒泡排序。如果没有发生相邻元素交换,则说明排序完成。
<meta charset="gb2312" /> <?PHP //数组元素值从小到大排序 $arr=array(1,42,0,3,15,7,19,26); foreach($arr as $k=>$v) echo " index:$k -- value:$v<br>"; echo "<hr color=red />"; echo "After applying sort() <br>"; $ar=$arr; //定义一个中间变量 sort($ar); print_r($ar); echo '<br><hr color=red />'; echo "使用 冒泡排序"; $temp=0; //外层循环的次数 for($i=0;$i<count($arr)-1;$i++){ $exchange=false; //内层之间向右相邻的两个数组元素值进行比较 for($j=0;$j<count($arr)-1-$i;$j++){ //当后一个数组元素值大于前一个数组原数值 if($arr[$j]>$arr[$j+1]){ //数组元素交换 $temp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$temp; $exchange=true; } } //外层数组循环的次数是---count($arr)-1 //-1的原因(数组元素值比较时是两个比较 //如3个数组元素比较2次 echo "这是第".($i+1)."次比较的结果"; echo "<pre/>"; print_r($arr); echo "<pre/>"; if (!$exchange) break; } echo "<hr color=red />"; echo "<pre/>"; print_r($arr); echo "<pre/>" ?>

