您好,登錄后才能下訂單哦!
小編給大家分享一下php中冒泡排序的時間復雜度和空間復雜度是什么,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
1、代碼實現
$arr = [2, 4, 1, 5, 3, 6]; for ($i = 0; $i < (count($arr)); $i++) { for ($j = $i + 1; $j < (count($arr)); $j++) { if ($arr[$i] <= $arr[$j]) { $temp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $temp; } } } result : [6,5,4,3,2,1]
2、計算原理
第一輪:將數組的第一個元素和其他所有的元素進行比較,哪個元素更大,就換順序,從而冒泡出第一大(最大)的元素
第一輪:將數組的第二個元素和其他所有的元素進行比較(第一大已經篩選出來不用繼續比較了),哪個元素更大,就換順序,從而冒泡出第二大的元素
... 依次類推,冒泡從大到小排序的數組
平均時間復雜度:O(n^2)
;
最優時間復雜度:O(n)
,需要加判斷,第一次循環如果一次都沒有交換就直接跳出循環
空間復雜度:O(1)
,交換元素的時候的臨時變量占用的空間
最優空間復雜度:O(1)
,排好序,不需要交換位置
3、時間復雜度和空間復雜度
時間復雜度:全程為漸進時間復雜度,估算對處理器的使用效率(描述算法的效率趨勢,并不是指算法具體使用的時間,因為不同機器的性能不一致,只是一種效率計算的通用方法)
表示方法:大O符號表示法
復雜度量級:
常數階O(1)
線性階O(n)
平方階O(n2)
立方階O(n3)
K次方階O(n^k)
指數階(2^n)
對數階O(logN)
線性對數階O(nlogN)
時間復制類型:
最好時間復雜度
最壞時間復雜度
平均時間復雜度
均攤時間復雜度
空間復雜度:全程漸進空間復雜度,估算對計算機內存的使用程度(描述算法占用的存儲空間的趨勢,不是實際占用空間,同上)
看完了這篇文章,相信你對“php中冒泡排序的時間復雜度和空間復雜度是什么”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。