成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

PHP冒泡排序

jimhs / 2141人閱讀

摘要:冒泡排序?qū)?shù)組按從小到大進(jìn)行排序得到結(jié)果比較,邏輯大致是這樣的。

冒泡排序

對(duì)數(shù)組$arr = [1,7,5,3,3,2]按從小到大進(jìn)行排序

$arr = [1,7,5,3,3,2];

function order($arr)
{
   $length = count($arr);
   for ($i=0;$i<$length-1;$i++)
   {
       for ($j=0;$j<$length-1-$i;$j++)
       if($arr[$j]>$arr[$j+1])
       {
           $temp = $arr[$j+1];
           $arr[$j+1] = $arr[$j];
           $arr[$j] = $temp;
       }
       else
       {
           break;
       }
   }
   return $arr;
}
var_dump(order($arr));
得到結(jié)果
array(6) {
  [0] =>
  int(1)
  [1] =>
  int(2)
  [2] =>
  int(3)
  [3] =>
  int(3)
  [4] =>
  int(5)
  [5] =>
  int(7)
}

比較,邏輯大致是這樣的。

當(dāng)i=0的時(shí)候進(jìn)行第一次冒泡

j=0=> 1-7比較,7比1大,不做改變 [1,7,5,3,3,2]

j=1=> 7-5比較,5比7小,交換位置 [1,5,7,3,3,2]

j=2=> 7-3比較,3比7小,交換位置 [1,5,3,7,3,2]

j=3=> 7-3比較,3比7小,交換位置 [1,5,3,3,7,2]

j=4=> 7-2比較,3比7小,交換位置 [1,5,3,3,2,7]

這樣就進(jìn)行了一次冒泡,得到了最大值 7

當(dāng)i=1的時(shí)候進(jìn)行第二次冒泡

j=0=> 1-5比較,5比1大,不做改變 [1,5,3,3,2,7]

j=1=> 5-3比較,3比5小,交換位置 [1,3,5,3,2,7]

j=2=> 5-3比較,3比5小,交換位置 [1,3,3,5,2,7]

j=3=> 5-2比較,2比5小,交換位置 [1,3,3,2,5,7]

這樣就進(jìn)行了二次冒泡,得到了最大值 5

當(dāng)i=2的時(shí)候進(jìn)行第三次冒泡

j=0=> 1-3比較,3比1大,不做改變 [1,3,3,2,5,7]

j=1=> 3-3比較,兩個(gè)一樣大,不做改變 [1,3,3,2,5,7]

j=2=> 3-2比較,2比3小,交換位置 [1,3,2,3,5,7]

這樣就進(jìn)行了三次冒泡,得到了最大值 3

當(dāng)i=3的時(shí)候進(jìn)行第四次冒泡

j=0=> 1-3比較,3比1大,不做改變 [1,3,2,3,5,7]

j=1=> 3-2比較,2比3小,交換位置 [1,2,3,3,5,7]

這樣就進(jìn)行了四次冒泡,得到了最大值 3

當(dāng)i=4的時(shí)候進(jìn)行第五次冒泡

j=0=> 1-2比較,2比1大,不做改變 [1,2,3,3,5,7]

這樣就進(jìn)行了五次冒泡,得到了最大值 2

文章參考 http://www.cnblogs.com/shen-hua/p/5422676.html

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29391.html

相關(guān)文章

  • PHP排序算法之冒泡排序

    摘要:一冒泡排序原理對(duì)一組數(shù)據(jù),比較相鄰數(shù)據(jù)的大小,將值小數(shù)據(jù)在前面,值大的數(shù)據(jù)放在后面。通過(guò)以上五輪排序,若干次比較,我們有理由推斷出一個(gè)結(jié)論對(duì)于一個(gè)長(zhǎng)度為的數(shù)組,我們需要排序輪,每輪要比較次。 一、冒泡排序   原理:對(duì)一組數(shù)據(jù),比較相鄰數(shù)據(jù)的大小,將值小數(shù)據(jù)在前面,值大的數(shù)據(jù)放在后面。 (以下都是升序排列,即從小到大排列)   舉例說(shuō)明: $arr = array(6, 3, 8,...

    Raaabbit 評(píng)論0 收藏0
  • PHP 實(shí)現(xiàn)冒泡排序

    摘要:導(dǎo)語(yǔ)冒泡排序是相對(duì)比較簡(jiǎn)單常用的算法,同時(shí)在面試中也是最常被問(wèn)到的問(wèn)題。冒泡排序?qū)€(gè)項(xiàng)目需要的比較次數(shù),且可以原地排序。冒泡排序算法的運(yùn)作如下比較相鄰的元素。 導(dǎo)語(yǔ) 冒泡排序是相對(duì)比較簡(jiǎn)單、常用的算法,同時(shí)在面試中也是最常被問(wèn)到的問(wèn)題。自認(rèn)能力不夠,不能有更深的理解,下面就把一些資料中的內(nèi)容記錄下來(lái),文末有原文鏈接。 冒泡排序 冒泡排序(英語(yǔ):Bubble Sort)是一種簡(jiǎn)單的排序...

    genedna 評(píng)論0 收藏0
  • 比較排序算法(PHP

    摘要:總結(jié)比較排序算法都是空間復(fù)雜度為的原地排序算法,其中冒泡排序和插入排序兩兩比較不會(huì)交換相等的記錄,所以這兩種排序都是穩(wěn)定排序,而選擇排序只是記錄最小值最后進(jìn)行交換,所以會(huì)破壞相對(duì)順序,選擇排序不是穩(wěn)定算法。 冒泡排序 兩兩比較相鄰記錄的關(guān)鍵字,如果反序則交換,大的數(shù)字往下沉,一直到最大的出現(xiàn)在數(shù)組最后 function swap(&$x, &$y) { $temp = $x; ...

    浠ラ箍 評(píng)論0 收藏0
  • PHP 快速排序算法

    摘要:概念這里借用百度百科的一張圖來(lái),非常形象快速排序算法是對(duì)冒泡算法的一個(gè)優(yōu)化。獲取已經(jīng)打亂了順序的數(shù)組快速排序這里引用的是我之前寫(xiě)的冒泡算法排序冒泡運(yùn)行結(jié)果 概念 這里借用百度百科的一張圖來(lái),非常形象:showImg(https://segmentfault.com/img/bVdlR6); 快速排序算法是對(duì)冒泡算法的一個(gè)優(yōu)化。他的思想是先對(duì)數(shù)組進(jìn)行分割, 把大的元素?cái)?shù)值放到一個(gè)臨時(shí)數(shù)...

    Coly 評(píng)論0 收藏0
  • PHP面試:盡可能多的說(shuō)出你知道的排序算法

    摘要:良好的排序算法具有進(jìn)行最少的比較和交換的特征。冒泡排序是一個(gè)基于比較的排序算法,被認(rèn)為是效率最低的排序算法之一。現(xiàn)在讓我們使用實(shí)現(xiàn)冒泡排序算法。插入排序到目前為止,我們已經(jīng)看到了兩種基于比較的排序算法。 預(yù)警 本文適合對(duì)于排序算法不太了解的新手同學(xué)觀(guān)看,大佬直接忽略即可。因?yàn)榭紤]到連貫性,所以篇幅較長(zhǎng)。老鐵們看完需要大概一個(gè)小時(shí),但是從入門(mén)到完全理解可能需要10個(gè)小時(shí)(哈哈哈,以我自己...

    objc94 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

jimhs

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<