您的位置:首页 > 编程语言 > PHP开发

php 冒泡排序和插入排序的学习总结

2018-03-17 15:57 483 查看
 1、冒泡排序:对于一个长度为N的数组,我们需要排序 N-1 轮,每 i 轮 要比较 N-i 次。对此我们可以用双重循环语句,外层循环控制循环轮次,内层循环控制每轮的比较次数。
function test(){
$arr= array(1,43,54,62,21,66,32,78,36,76,39);
$len = count($arr);
//该层循环控制 需要冒泡的轮数
 for($i =1; $i< $len ; $i++){
 //该层循环用来控制每轮 冒出一个数 需要比较的次数
for ($j =0; $j <$len-$i ;$j++ ){
$tep = $arr[$j+1];
if($tep < $arr[$j]){
$arr[$j+1] = $arr[$j];
$arr[$j] = $tep;
}
}
}
return $arr;
}
 2、插入排序:在要排序的一组数中,假设前面的数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
function test($arr) {
$len = count($arr);
for($i = <
4000
/span>1; $i < $len; $i++) {
//内层循环控制,比较并插入
if($arr[$i-1] > $arr[i]) {
for($j = $i-1; $j >= 0; $j--) {
//发现插入的元素要小,交换位置,将后边的元素与前面的元素互换
$tmp = $arr[$j+1];
if($tmp < $arr[$j]) {
$arr[$j+1] = $arr[$j];
$arr[$j] = $tmp;
}else{
//如果碰到不需要移动的元素,由于是已经排序好是数组,则前面的就不需要再次比较了。
break;
}
}
}
}
return $arr;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐