91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

算法系列:冒泡排序法

發布時間:2020-06-04 05:37:14 來源:網絡 閱讀:798 作者:沙耶博士 欄目:web開發

一、基本思路

通過兩兩比較,然后交換雙方位置的一種排序方法。

二、示例代碼

$arr = array(1,4,2,6,3,8);
for($i=0;$i<count($arr)-1;$i++){    
    for($j=$i+1;$j<count($arr);$j++){       

        if($arr[$i]>$arr[$j]){  //如果前面的數比后面的大,則進行交換     
            $temp = $arr[$j];           
            $arr[$j] = $arr[$i];
            $arr[$i] = $temp;           
        }
    }
}
//$arr = array(1,2,3,4,6,8)

三、分析說明

1、需要兩層循環
2、第一層循環從第一個數開始,截止到倒數第二個數
3、第二層循環從第一個數的后面開始,截止到最后一個數。
4、當前面的數比后面的大時,進行位置互換,互換需要一個臨時變量。

四、復雜度分析

1、第一層循環需要執行n-1次,第二層循環也要執行n-1次
2、總執行次數為(n-1)*(n-1) = n^2 - 2n + 1
3、時間復雜度為n^2

數量n 執行次數

2 1

3 4

4 9

5 16

... ...

101 10000

五、備注

冒泡法思路簡單,實現簡單,對于數據規模比較小的情況下適合使用。

六、雙向冒泡(雞尾酒冒泡)

這是一種左到右,右到左,反復掃描排序模式,整體排序效率略高于單向冒泡,但是實現起來復雜的多。

當待排序數組比較規則時(大部分已排序)效率比單向冒泡高。

//交換函數
function swap(&$arr,$i,$j){

    $temp = $arr[$i];
    $arr[$i] = $arr[$j];
    $arr[$j] = $temp;

    return $arr;
}
//向右排序(大的往右放)
function leftSort(&$arr,$left,$right){

    for($i=$left;$i<$right;$i++){

        if($arr[$i]>$arr[$i+1]){

            swap($arr,$i,$i+1);
        }
    }   
}
//向左排序(小的往左放)
function rightSort(&$arr,$right,$left){

    for($i=$right;$i>$left;$i--){

        if($arr[$i-1]>$arr[$i]){

            swap($arr,$i-1,$i);
        }
    }
}

function CocktailSort(&$arr,$n){

    $left = 0;
    $right = $n-1;

    while($left < $right){

        leftSort($arr,$left,$right);
        $right -=1;
        rightSort($arr,$right,$left);
        $left +=1;  
    }
}

$arr = array(1,4,2,6,3,8);
$n = count($arr);
CocktailSort($arr,$n);

//arr = array(1,2,3,4,6,8);
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

比如县| 格尔木市| 宁城县| 靖远县| 七台河市| 宝山区| 汾阳市| 平塘县| 桃源县| 华容县| 中超| 深圳市| 藁城市| 罗定市| 伊春市| 城口县| 旅游| 嵊泗县| 内乡县| 唐海县| 博爱县| 新安县| 盐边县| 沙雅县| 满洲里市| 赣榆县| 仙游县| 东源县| 分宜县| 松溪县| 巴马| 观塘区| 井研县| 梧州市| 滕州市| 四子王旗| 南郑县| 屏南县| 高陵县| 南靖县| 临高县|