欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

排序算法之PHP版快速排序、冒泡排序

 更新時(shí)間:2014年04月09日 10:15:56   投稿:junjie  
這篇文章主要介紹了排序算法之PHP版快速排序、冒泡排序,需要的朋友可以參考下

一、快速排序
 
1.簡(jiǎn)介
快速排序是由東尼·霍爾所發(fā)展的一種排序算法。在平均狀況下,排序 n 個(gè)項(xiàng)目要Ο(n log n)次比較。在最壞狀況下則需要Ο(n2)次比較,但這種狀況并不常見。事實(shí)上,快速排序通常明顯比其他Ο(n log n) 算法更快,因?yàn)樗膬?nèi)部循環(huán)(inner loop)可以在大部分的架構(gòu)上很有效率地被實(shí)現(xiàn)出來。
快速排序使用分治法(Divide and conquer)策略來把一個(gè)串行(list)分為兩個(gè)子串行(sub-lists)。
2.步驟
從數(shù)列中挑出一個(gè)元素,稱為 “基準(zhǔn)”(pivot),
重新排序數(shù)列,所有元素比基準(zhǔn)值小的擺放在基準(zhǔn)前面,所有元素比基準(zhǔn)值大的擺在基準(zhǔn)的后面(相同的數(shù)可以到任一邊)。在這個(gè)分區(qū)退出之后,該基準(zhǔn)就處于數(shù)列的中間位置。這個(gè)稱為分區(qū)(partition)操作。
遞歸地(recursive)把小于基準(zhǔn)值元素的子數(shù)列和大于基準(zhǔn)值元素的子數(shù)列排序。
3.代碼實(shí)現(xiàn)

復(fù)制代碼 代碼如下:
function quickSort(array $array)
 {
     $len = count($array);
     if($len <= 1)
     {
         return $array;
     }
     $key = $array[0];
     $left = array();
     $right = array();
     for($i=1; $i<$len; ++$i)
     {
         if($array[$i] < $key)
         {
             $left[] = $array[$i];
         }
         else
         {
             $right[] = $array[$i];
         }
     }
     $left = quickSort($left);
     $right = quickSort($right);
     return array_merge($left, array($key), $right);
 }

 print '<pre>';
 print_r(quickSort(array(1,4,22,5,7,6,9)));
 print '</pre>';


4.排序效果

使用快速排序法對(duì)一列數(shù)字進(jìn)行排序的過程


 
二、冒泡排序
 
1.簡(jiǎn)介
冒泡排序(Bubble Sort)是一種簡(jiǎn)單的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過來。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。這個(gè)算法的名字由來是因?yàn)樵叫〉脑貢?huì)經(jīng)由交換慢慢“浮”到數(shù)列的頂端。
2.步驟
比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。
對(duì)每一對(duì)相鄰元素作同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。
針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。
持續(xù)每次對(duì)越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。
3.代碼實(shí)現(xiàn)

復(fù)制代碼 代碼如下:
<?php
 function bubbingSort(array $array)
 {
     for($i=0, $len=count($array)-1; $i<$len; ++$i)
     {
         for($j=$len; $j>$i; --$j)
         {
             if($array[$j] < $array[$j-1])
             {
                 $temp = $array[$j];
                 $array[$j] = $array[$j-1];
                 $array[$j-1] = $temp;
             }
         }
     }
     return $array;
 }

 print '<pre>';
 print_r(bubbingSort(array(1,4,22,5,7,6,9)));
 print '</pre>';


4.排序過程

使用冒泡排序?yàn)橐涣袛?shù)字進(jìn)行排序的過程

相關(guān)文章

  • ThinkPHP實(shí)現(xiàn)附件上傳功能

    ThinkPHP實(shí)現(xiàn)附件上傳功能

    這篇文章主要為大家詳細(xì)介紹了ThinkPHP實(shí)現(xiàn)附件上傳功能,圖片,文檔,視頻等文件進(jìn)行上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • laravel-admin的圖片刪除實(shí)例

    laravel-admin的圖片刪除實(shí)例

    今天小編就為大家分享一篇laravel-admin的圖片刪除實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • PHP中的類型約束介紹

    PHP中的類型約束介紹

    這篇文章主要介紹了PHP中的類型約束介紹,PHP的類方法和函數(shù)中可實(shí)現(xiàn)類型約束,但參數(shù)只能指定類、數(shù)組、接口、callable 四種類型,參數(shù)可默認(rèn)為NULL,PHP并不能約束標(biāo)量類型或其它類型,需要的朋友可以參考下
    2015-05-05
  • 淺談PHP正則中的捕獲組與非捕獲組

    淺談PHP正則中的捕獲組與非捕獲組

    下面小編就為大家?guī)硪黄獪\談PHP正則中的捕獲組與非捕獲組。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • PHP 傳輸會(huì)話curl函數(shù)的實(shí)例詳解

    PHP 傳輸會(huì)話curl函數(shù)的實(shí)例詳解

    這篇文章主要介紹了PHP 傳輸會(huì)話curl函數(shù)的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • 讓codeigniter與swfupload整合的最佳解決方案

    讓codeigniter與swfupload整合的最佳解決方案

    網(wǎng)上有很多關(guān)于ci與swfupload的帖子,不過,并不是很完整,所以,這里綜合各家優(yōu)點(diǎn),經(jīng)過自己實(shí)際經(jīng)驗(yàn),做了下整理,需要的朋友可以參考下
    2014-06-06
  • PHP處理CSV表格文件的常用操作方法總結(jié)

    PHP處理CSV表格文件的常用操作方法總結(jié)

    CSV文件以純文本形式存儲(chǔ)表格數(shù)據(jù),所以我們通過PHP數(shù)組能夠較為容易地對(duì)CSV中的數(shù)據(jù)進(jìn)行讀寫,這里我們就來看一下PHP處理CSV表格文件的常用操作方法總結(jié):
    2016-07-07
  • PHP獲取用戶客戶端真實(shí)IP的解決方案

    PHP獲取用戶客戶端真實(shí)IP的解決方案

    獲取客戶端ip其實(shí)不是個(gè)簡(jiǎn)單的活兒,因?yàn)榇嬖贗p欺騙,和代理問題,所以獲取客戶端的IP的真實(shí)性會(huì)打折扣的,不能百分百準(zhǔn)確.但是我們盡量使用比較完善的方法獲取客戶的ip,下面小編給大家分享PHP獲取用戶客戶端真實(shí)IP的方法,一起看看吧
    2016-10-10
  • PHP中如何使用session實(shí)現(xiàn)保存用戶登錄信息

    PHP中如何使用session實(shí)現(xiàn)保存用戶登錄信息

    這篇文章主要給大家介紹在php中是如何使用session實(shí)現(xiàn)保存用戶登錄信息的,涉及到php session 用戶登錄等一些知識(shí)點(diǎn),使用session保存用戶登錄信息要比cookie安全很多。感興趣的朋友一起學(xué)習(xí)吧
    2015-10-10
  • php讀取和保存base64編碼的圖片內(nèi)容

    php讀取和保存base64編碼的圖片內(nèi)容

    這篇文章主要為大家詳細(xì)介紹了php讀取和保存base64編碼的圖片內(nèi)容,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評(píng)論