冒个泡

刚才在群里跟同事聊天,讲了一些关于面试啊什么的,同事说,如果现在让他盲写冒泡排序都写不出来。于是,测试一下自己,顺便理一下思路~

$nums = [1,9,10,2,3,4,8,5,6,7];

    //冒泡的算法思路,小数往前,大数往后,交换
    /**
     * 1=> 1,9,2,3,4,8,5,6,7,10    确定最后一位
     * 2=> 1,2,3,4,8,5,6,7,9,10    确定最后两位
     * 3=> 1,2,3,4,5,6,7,8,9,10    确定最后三位
     * 4=> 1,2,3,4,5,6,7,8,9,10    确定最后四位
     * ....                        确定最后n-1位
     */

    $len = sizeof($nums);

    for ($i=0;$i<$len-2;$i++){
        for ($j=0;$j<($len-$i-1);$j++){
            $tmp = 0;
            if($nums[$j]>$nums[$j+1]){
                $tmp = $nums[$j];
                $nums[$j] = $nums[$j+1];
                $nums[$j+1] = $tmp;
            }
        }
    }


    print_r($nums);

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据