冒泡排序

排序算法之冒泡排序

1.属于内部排序,是指将数据加载到内存进行排序,(属于交换排序法)

function 冒泡排序($arr)
{
    $flag = false;//标识变量,标识数组是否已经排序好
    //数组假如有5个元素,排好4个的话,那么最后一个就自然排好了,下标从0开始,$i表示已经排好元素的个数...
    for ($i = 0; $i < count($arr) - 1; $i++) {

        //$i表示已经排好元素的个数,已经排好了就不需要再进行排序了,
        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;
                $flag = true;//表示进行了交换
            }
        }
        if (!$flag) {
            break;//已经是有序的了,不需要进行排序了
        }
        $flag = false;
    }
    return $arr;
}

 

posted @ 2017-01-18 21:37  tianye_guazi  阅读(131)  评论(0编辑  收藏  举报