天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

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



二、冒泡排序
 
1.簡(jiǎn)介
冒泡排序(Bubble Sort,臺(tái)灣譯為:泡沫排序或氣泡排序)是一種簡(jiǎn)單的排序算法。它重復(fù)地走訪過(guò)要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過(guò)來(lái)。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說(shuō)該數(shù)列已經(jīng)排序完成。這個(gè)算法的名字由來(lái)是因?yàn)樵叫〉脑貢?huì)經(jīng)由交換慢慢“浮”到數(shù)列的頂端。
2.步驟
比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。
對(duì)每一對(duì)相鄰元素作同樣的工作,從開(kāi)始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。
針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。
持續(xù)每次對(duì)越來(lái)越少的元素重復(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.排序過(guò)程

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

php技術(shù)排序算法之PHP版快速排序、冒泡排序,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲欧洲日韩国产一区二区三区 | 香蕉久久夜色精品国产小优 | 日日天干夜夜狠狠爱 | 97影院午夜午夜伦不卡 | 强奷乱码欧妇女中文字幕熟女 | 亚洲国产AV精品一区二区蜜芽 | SM脚奴调教丨踩踏贱奴 | 国产精品久久久久久久AV下载 | 闺蜜扒开我尿口使劲揉 | 天天爽夜夜爽8888视频精品 | 国产精品久久精品视 | 高中生高潮抽搐喷出白浆视频 | 永久免费精品影视网站 | 久久大综合| 青青草伊人网 | 美女的让男人桶爽网站 | 欧美一区二区三区不卡免费 | 国产精品高潮AV久久无码 | 国产亚洲精品久久无亚洲 | 久久视热频国只有精品 | 波多结衣一区二区三区 | 免费在线a | 免费在线观看一区 | 亚洲婷婷天堂综合国产剧情 | 蜜臀AV精品一区二区三区 | 亚洲、国产综合视频 | 国产精品美女WWW爽爽爽视频 | 一个人免费视频在线观看高清频道 | 久草免费视频在线观看 | 日本无码免费久久久精品 | 国产偷国产偷亚州清高APP | 中文字幕无码他人妻味 | 超清无码波多野吉衣与黑人 | 天天槽任我槽免费 | 阿片在线播放 | 最近日本MV字幕免费观看视频 | 国产精品久久久久久精品... | 无人视频在线观看免费播放影院 | 国自产精品手机在线视频 | 日产亚洲一区二区三区 | 0951影音在线|