欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

优化后的冒泡

程序员文章站 2022-06-16 09:24:34
...

优化后的冒泡排序

function sort_aw($array = array()){
        $tmp = 0;
        //记录最后一次交换的位置
        $lastExchangeIndex = 0;
        //无序数列的边界,每次比较只需要到这里就可以了
        $sortBorder = count($array)-1;
        for($i = 0;$i<count($array);$i++){
            //有序标记,每一轮的初始为true
            $isSorted = true;
            for($j = 0;$j<$sortBorder;$j++){
                if($array[$j] > $array[$j+1]){
                    $tmp = $array[$j];
                    $array[$j] = $array[$j+1];
                    $array[$j+1] = $tmp;
                    //有元素交换,所以不是有序,标记为false
                    $isSorted = false;
                    // 把无序数列的边界跟新为最后一次交换元素的位置
                    $lastExchangeIndex = $j;
                }
                echo $j.PHP_EOL;
            }
            $sortBorder  = $lastExchangeIndex;
            echo '-'.$i.PHP_EOL;
            if($isSorted){
            	
                break;
            }
        }
        return $array;

    }
$arr = [3,45,55,22,98,65,4,2,1,5,6,7,8];
 print_r( sort_aw($arr)) ;
相关标签: 冒泡