排序算法
1.冒泡排序
1)普通写法
<?php
function tesr(){
$arr=[8,3,1,4,6,5,6];
$len=sizeof($arr);
for($i=0;$i<$len;$i++){
for($j=0;$j<$len-$i-1;$j++){
if(($arr[$j]>$arr[$j+1])){
$tmp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$tmp;
}
print_r($arr);
}
}
}
2)优化算法
增加标志位,当数值有序则不再进行比较
function tesr(){
$arr=[8,3,1,4,6,5,6];
$len=sizeof($arr);
for($i=0;$i<$len;$i++){
$flag=0;
for($j=0;$j<$len-$i-1;$j++){
if(($arr[$j]>$arr[$j+1])){
$tmp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$tmp;
$flag=1;
}
}
if($flag==0){break;}
}
print_r($arr);
}
2.插入排序
<?php
$arr=[8,3,1,4,6,5,6];
$len=sizeof($arr);
$min=0;//最小下标
$tmp=0;//临时
for($i=0;$i<$len-1;$i++){
$min=$i;//不能放在$arr[$min]=$tmp后执行
for($j=$i+1;$j<$len;$j++){
if($arr[$j]<$arr[$min]){
$min=$j;
}
}
$tmp=$arr[$i];
$arr[$i]=$arr[$min];
$arr[$min]=$tmp;
}
print_r($arr);
3.选择排序