php實現排序演算法(一) 冒泡排序 快速排序

來源:互聯網
上載者:User
好久沒有來練習的自己的演算法技能了以至於很多基本的演算法都快忘記了。
以前用c寫的演算法也不多。那麼今天開始吧!以後堅持每天晚上編寫一些簡單的演算法,堅持練習!

第一篇 冒泡排序

冒泡排序是最簡單基礎的排序,但是由於好久沒寫代碼了,一開始寫下去還是不流暢。。。罪過罪過冒泡排序原理,每次從待排序的序列裡面選出一個最大或者最小的元素放到已經排好序的序列後面。知道最後待排序的序列為無;以下是用php實現的冒泡排序,注意以下幾點:1)當帶排序的數組為無的時候直接退出,避免出錯。2) 尼瑪數組都忘記怎麼寫了,我真是該死。
functionbubblesort($array){$count = count($array);        if($count == 0){            return$array;        }        echo$count;        for($i = 0; $i < $count; $i++){            for($j = $count - 1; $j > $i; $j--){                if($array[$j] < $array[$j - 1]){                    $temp = $array[$j];                    $array[$j] = $array[$j-1];                    $array[$j-1] = $temp;                 }            }        }        return$array;    }     $array = array(1,45,2,4,54,2,45,6);    print_r(bubblesort($array));    ?>

第二篇 快速排序(quicksort)

    原理: 快速排序是對冒泡排序的一種改進,基本思想是通過一趟排序將要排序的資料分成兩部分,其中的一部

分比另一部分所有資料都小,然後按此方法對著兩部分的資料分別進行快速排序,整個排序過程可以遞迴進行,以此

達到資料變成有序序列。

($arr){        $count = count($arr);        if($count <= 1){            return $arr;        }        $key = $arr[0];        $left_arr = array();        $right_arr = array();        for($i = 1; $i < $count; $i++){            if($arr[$i] <= $key){                $left_arr[] = $arr[$i];            }else{                $right_arr[] = $arr[$i];            }        }        $left_arr = quickSort($left_arr);        $right_arr = quickSort($right_arr);        return array_merge($left_arr,array($key),$right_arr);    }    $arr = array(23,4,6,46,34,23,6234,34,12,34);    print_r(quickSort($arr));

?>

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

以上就介紹了php實現排序演算法(一) 冒泡排序 快速排序,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.