摘要:冒泡排序對數組按從小到大進行排序得到結果比較,邏輯大致是這樣的。默認第一個元素是最小值,所以從第二個元素開始一次與前面的元素進行比較,插入到合適的位置時將與進行比較。發現比大,跳出本次循環,此時數組依然為
冒泡排序
對數組$arr = [9,7,2,77,31]按從小到大進行排序
$arr = [9,7,2,77,31]; $length = count($arr); for($i=1;$i<$length;$i++) { $tmp = $arr[$i]; for ($j=$i-1;$j>=0;$j--) { if($tmp<$arr[$j]) { $arr[$j+1] = $arr[$j]; $arr[$j] = $tmp; } else { break; } } } print_r($arr); 得到結果 Array ( [0] => 2 [1] => 7 [2] => 9 [3] => 31 [4] => 77 )
比較,邏輯大致是這樣的。默認第一個元素是最小值,所以從第二個元素開始一次與前面的元素進行比較,插入到合適的位置
i=1
j=0 時;將7與9進行比較。發現7比9小,交換位置,此時得到數組[7,9,2,77,31]
i=2
j=1時;將2與9進行比較。發現2比9小,交換位置,此時得到數組[7,2,9,77,31]
j=0時;將2與7進行比較。發現2比7小,交換位置,此時得到數組[2,7,9,77,31]
i=3
j=2時;將77與9進行比較。發現77比9大,跳出本次循環,此時數組依然為[2,7,9,77,31]
i=4
j=3時;將31與77進行比較。發現31比77小,交換位置,此時得到數組[2,7,9,31,77]
j=2時;將9與31進行比較。發現31比9大,跳出本次循環,此時數組依然為[2,7,9,31,77]
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29409.html
摘要:直接插入排序是由兩層嵌套循環組成的。插入排序的基本方法是每步將一個待排序的記錄按其關鍵字的大小插到前面已經排序的序列中的適當位置,直到全部記錄插入完畢為止。算法實現直接插入排序記錄后移插入到正確的位置運行結果 算法引入: 在這里我們依然使用《大話數據結構》里面的一個例子: 撲克牌是我們幾乎每個人都玩過的游戲。平時我們開始的時候一般都是一個人發牌,其他人都是一邊摸牌,一邊理牌,假如你摸上...
摘要:插入排序插入排序英語是一種簡單直觀的排序算法。插入排序在實現上,通常采用排序即只需用到的額外空間的排序,因而在從后向前掃描過程中,需要反復把已排序元素逐步向后挪位,為最新元素提供插入空間。一般來說,插入排序都采用在數組上實現。 導語 關于排序的算法,就此告一段落。冒泡排序、快速排序、選擇排序、加上本篇的插入排序,這四種算法都是相對簡單,容易理解的。更復雜的算法,就不獻丑了,以免誤人子弟...
摘要:的陣列視為基本型別,所以必須用傳參考才能修改原陣列插入排序快速排序歸并排序堆排序獲取個數處理一半的數據 function bubble_sort(&$arr) {//php的陣列視為基本型別,所以必須用傳參考才能修改原陣列 for ($i = 0; $i < count($arr) - 1; $i++) for ($j = 0; $j < count($arr)...
摘要:總結比較排序算法都是空間復雜度為的原地排序算法,其中冒泡排序和插入排序兩兩比較不會交換相等的記錄,所以這兩種排序都是穩定排序,而選擇排序只是記錄最小值最后進行交換,所以會破壞相對順序,選擇排序不是穩定算法。 冒泡排序 兩兩比較相鄰記錄的關鍵字,如果反序則交換,大的數字往下沉,一直到最大的出現在數組最后 function swap(&$x, &$y) { $temp = $x; ...
摘要:而在證明算法是正確的基礎上,第二步就是分析算法的時間復雜度。算法的時間復雜度反映了程序執行時間隨輸入規模增長而增長的量級,在很大程度上能很好反映出算法的優劣與否。 showImg(https://segmentfault.com/img/remote/1460000016451712?w=800&h=341); 前言 雖然工作中,你覺得自己并沒有涉及到算法這方面的東西,但是算法是程序的...
摘要:一個常見的例子就是優先隊列,還有排序算法之一的堆排序。另外我們還將學習堆排序,并將使用實現堆。堆排序在堆排序中,我們需要用給定的值構建一個一個堆。偽代碼如下從上面的偽代碼可以看到,堆排序的第一步就是構建一個堆。 堆是什么? 堆是基于樹抽象數據類型的一種特殊的數據結構,用于許多算法和數據結構中。一個常見的例子就是優先隊列,還有排序算法之一的堆排序。這篇文章我們將討論堆的屬性、不同類型的堆...
閱讀 2941·2021-10-28 09:32
閱讀 2967·2021-10-11 10:57
閱讀 3114·2021-10-08 10:05
閱讀 2587·2021-09-28 09:36
閱讀 2212·2019-08-30 15:55
閱讀 2270·2019-08-30 15:44
閱讀 2393·2019-08-30 14:02
閱讀 3075·2019-08-29 17:16