美文网首页
冒泡排序【改进】,php实现

冒泡排序【改进】,php实现

作者: designer | 来源:发表于2021-12-14 21:07 被阅读0次

    思路:冒泡排序法【改进】

    • 1.冒泡排序法,如果后续元素都有序的话,还会进行遍历,针对这个地方,可以做一个优化。
     <?php
    namespace fql\test;
    use fql\aglorthim\sort\BubbleSort;
    
    require_once __DIR__ . '/../../vendor/autoload.php';
    
    
    function sort(){
       //初步假设元素无序
       $isSort = true;
       $arr = [1,5,6,2,4,2,8,9,10];
       $len = count($arr);
       //循环n趟
       for ($i = $len ;$i > 0 ; $i --){
           //如果有序,退出循环
           if($isSort ==  false){
               break;
           }
           //假设本趟有序
           $isSort = false;
           for( $j = 0; $j< $i - 1 ; $j++){
               if($arr[$j] > $arr[$j + 1]){
                   //说明无序
                   $isSort = true;
                   //交换元素
                   swap($arr[$j], $arr[$j + 1]);
               }
           }
       }
       return $arr;
    }
    
    /**
    * @param $pre
    * @param $next
    * 交换功能
    */
    function swap(&$pre,&$next){
       $tmp = $pre;
       $pre = $next;
       $next = $tmp;
    }
    
    print_r(sort());
    
    

    相关文章

      网友评论

          本文标题:冒泡排序【改进】,php实现

          本文链接:https://www.haomeiwen.com/subject/iimyfrtx.html