冒泡排序算法-詳解


這是我第一篇描述算法的文章隨筆,為什么開始寫這個呢?在求職的路上,算法是大廠必考項也是大部分互聯網公司注重的部分,因為算法的不足,我們可能會錯失很多好的工作和鍛煉學習的機會。在今后的學習中,我也會持續更新,一起學習一起分享。

接下來開始正文部分

 

 

 

 

 

 

 

 

 

含義:

冒泡排序:在待排序的元素列中每次對比相鄰兩個元素的值,大的元素被交換到后面,第一次排序之后在元素列中最大的元素就位於元素列的末尾,然后再次從頭開始重復之前的對比,每次排序的元素列長度-1,直至排序完成。

圖示分析:

下面通過圖示的方法來解析冒泡排序的一次排序對比,選出元素列中的最大值

下面是整個元素列的排序流程,根據上面的一次排序流程,可以對比這下圖仔細分析一下,以便能夠詳細的理解冒泡排序的原理。

 

 

 冒泡排序說的直白一點,其實就是循環這個元素列,對比元素列中的第一個值和第二個值的大小,如果第一個值大於第二個值,那么就交換值,然后再次對比第二個值和第三個值的大小,一次類推,直至到元素列尾,完成一趟冒泡排序。

接下來,讓我們直接上代碼,看一下這個冒泡排序的真實面目:

代碼:

function givePao($arr){
    $count=count($arr);
    if (0==$count){
        return false;
    }
    for ($i=0;$i<$count;$i++){
        for ($j=0;$j<$count-1-$i;$j++){
            if($arr[$j]>$arr[$j+1]){
                $temp=$arr[$j+1];
                $arr[$j+1]=$arr[$j];
                $arr[$j]=$temp;
            }
        }
    }
    return $arr;
}

好了,今天的文章就分享到這里,個人理解有限,不足的地方歡迎大家留言指正!

我是你們的朋友-五哥!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM