摘要:冒泡排序對數(shù)組按從小到大進行排序得到結果比較,邏輯大致是這樣的。
冒泡排序
對數(shù)組$arr = [1,7,5,3,3,2]按從小到大進行排序
$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)); 得到結果 array(6) { [0] => int(1) [1] => int(2) [2] => int(3) [3] => int(3) [4] => int(5) [5] => int(7) }
比較,邏輯大致是這樣的。
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]
這樣就進行了一次冒泡,得到了最大值 7
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]
這樣就進行了二次冒泡,得到了最大值 5
j=0=> 1-3比較,3比1大,不做改變 [1,3,3,2,5,7]
j=1=> 3-3比較,兩個一樣大,不做改變 [1,3,3,2,5,7]
j=2=> 3-2比較,2比3小,交換位置 [1,3,2,3,5,7]
這樣就進行了三次冒泡,得到了最大值 3
j=0=> 1-3比較,3比1大,不做改變 [1,3,2,3,5,7]
j=1=> 3-2比較,2比3小,交換位置 [1,2,3,3,5,7]
這樣就進行了四次冒泡,得到了最大值 3
j=0=> 1-2比較,2比1大,不做改變 [1,2,3,3,5,7]
這樣就進行了五次冒泡,得到了最大值 2
文章參考 http://www.cnblogs.com/shen-hua/p/5422676.html
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/yun/29391.html
摘要:一冒泡排序原理對一組數(shù)據(jù),比較相鄰數(shù)據(jù)的大小,將值小數(shù)據(jù)在前面,值大的數(shù)據(jù)放在后面。通過以上五輪排序,若干次比較,我們有理由推斷出一個結論對于一個長度為的數(shù)組,我們需要排序輪,每輪要比較次。 一、冒泡排序 原理:對一組數(shù)據(jù),比較相鄰數(shù)據(jù)的大小,將值小數(shù)據(jù)在前面,值大的數(shù)據(jù)放在后面。 (以下都是升序排列,即從小到大排列) 舉例說明: $arr = array(6, 3, 8,...
摘要:導語冒泡排序是相對比較簡單常用的算法,同時在面試中也是最常被問到的問題。冒泡排序對個項目需要的比較次數(shù),且可以原地排序。冒泡排序算法的運作如下比較相鄰的元素。 導語 冒泡排序是相對比較簡單、常用的算法,同時在面試中也是最常被問到的問題。自認能力不夠,不能有更深的理解,下面就把一些資料中的內容記錄下來,文末有原文鏈接。 冒泡排序 冒泡排序(英語:Bubble Sort)是一種簡單的排序...
摘要:總結比較排序算法都是空間復雜度為的原地排序算法,其中冒泡排序和插入排序兩兩比較不會交換相等的記錄,所以這兩種排序都是穩(wěn)定排序,而選擇排序只是記錄最小值最后進行交換,所以會破壞相對順序,選擇排序不是穩(wěn)定算法。 冒泡排序 兩兩比較相鄰記錄的關鍵字,如果反序則交換,大的數(shù)字往下沉,一直到最大的出現(xiàn)在數(shù)組最后 function swap(&$x, &$y) { $temp = $x; ...
摘要:概念這里借用百度百科的一張圖來,非常形象快速排序算法是對冒泡算法的一個優(yōu)化。獲取已經(jīng)打亂了順序的數(shù)組快速排序這里引用的是我之前寫的冒泡算法排序冒泡運行結果 概念 這里借用百度百科的一張圖來,非常形象:showImg(https://segmentfault.com/img/bVdlR6); 快速排序算法是對冒泡算法的一個優(yōu)化。他的思想是先對數(shù)組進行分割, 把大的元素數(shù)值放到一個臨時數(shù)...
摘要:良好的排序算法具有進行最少的比較和交換的特征。冒泡排序是一個基于比較的排序算法,被認為是效率最低的排序算法之一?,F(xiàn)在讓我們使用實現(xiàn)冒泡排序算法。插入排序到目前為止,我們已經(jīng)看到了兩種基于比較的排序算法。 預警 本文適合對于排序算法不太了解的新手同學觀看,大佬直接忽略即可。因為考慮到連貫性,所以篇幅較長。老鐵們看完需要大概一個小時,但是從入門到完全理解可能需要10個小時(哈哈哈,以我自己...
閱讀 856·2023-04-25 19:53
閱讀 4524·2021-09-22 15:13
閱讀 2721·2019-08-30 10:56
閱讀 1463·2019-08-29 16:27
閱讀 3097·2019-08-29 14:00
閱讀 2573·2019-08-26 13:56
閱讀 732·2019-08-26 13:29
閱讀 1768·2019-08-26 11:31