冒泡排序和一点优化(php)

function maopao($arr){
    $len = count($arr);//获取数组的长度
    //有多少个数组元素就最多就要排n-1次
    for ($j=0;$j<$len-1;$j++){
        $flag = true;//这个flag就是判断有没有进入里面的for,不进去就代表排好了,就直接退出当次循环
        //没个元素比较的次数,当前面排过 j次时,就以为着这j次肯定是排好的
        for ($i=0;$i<$len-1-$j;$i++){
            if($arr[$i]>$arr[$i+1]){
                $tmp = $arr[$i];
                $arr[$i] = $arr[$i+1];
                $arr[$i+1] = $tmp;
                $flag = false;
            }
        }
        if($flag){
            break;
        }
    }
    return $arr;
}

 

posted @ 2017-07-26 15:34  tatasix  阅读(515)  评论(3编辑  收藏  举报