php中求數組的中位數的方法:1、排序後取中位數,先用「sort()」函數進行排序,再取中間的值;2、利用數組函數求中位數,先使用「count()」函數取得陣列的長度,然後使用「array_slice()」函數從陣列中取出中間的一段,最後利用「array_sum()」函數求和,再除以長度;3、使用“QuickSelect”方法,可以在不排序的情況下尋找中位數。
本教學作業系統:windows10系統、PHP8.1.3版本、DELL G3電腦。
php中求數組的中位數有三種方法:
#方法一:排序後取中位數
#這種方法比較簡單,只需要將陣列排序,然後取中間的值即可。不過這種方法有一個明顯的缺點,就是排序的時間複雜度為O(nlogn),當n很大時,速度比較慢。
PHP中提供了一個sort()函數,可以對陣列進行排序,我們可以利用該函數來實現。
程式碼範例:
function get_median($arr) { sort($arr); $count = count($arr); $middle = floor(($count - 1) / 2); if ($count % 2 == 0) { $median = ($arr[$middle] + $arr[$middle + 1]) / 2; } else { $median = $arr[$middle]; } return $median; }
方法二:利用陣列函數求中位數
PHP中提供了一些陣列函數,我們可以用它們來計算數組的中間值。具體方法是,先使用count()函數取得陣列的長度,然後使用array_slice()函數從陣列中取出中間的一段,最後利用array_sum()函數求和,再除以長度即可。這種方法比較簡單,速度也比較快。
程式碼範例:
function get_median($arr) { sort($arr); $count = count($arr); $middle = floor(($count - 1) / 2); $median = ($count % 2 == 0) ? (array_sum(array_slice($arr, $middle, 2)) / 2) : $arr[$middle]; return $median; }
方法三:快速選擇演算法
以上兩種方法都需要對陣列排序,所以時間複雜度都比較高。實際上有一個叫做快速選擇演算法(QuickSelect)的方法,可以在不排序的情況下尋找中位數。快速選擇演算法與快速排序演算法有許多相似之處,但它只需要快排的一部分,所以其時間複雜度為O(n)。
程式碼範例:
function get_median($arr) { if (count($arr) % 2 == 0) { $k = count($arr) / 2; } else { $k = (count($arr) + 1) / 2; } return quick_select($arr, $k); } function quick_select(&$arr, $k) { if (count($arr) == 1) return $arr[0]; $p = $arr[0]; $f = $l = array(); foreach ($arr as $v) { if ($v $p) $l[] = $v; } if ($k count($arr) - count($l)) { return quick_select($l, $k - (count($arr) - count($l))); } else { return $p; } }
以上是三種取得陣列中間值的方法,不同的方法適用於不同的場景。如果需要取得多個中間值,可以使用以上方法的變體。無論哪種方法,都需要先了解數組的基本操作,才能更好地進行數組處理。
以上是php中如何求數組的中位數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文比較了酸和基本數據庫模型,詳細介紹了它們的特徵和適當的用例。酸優先確定數據完整性和一致性,適合財務和電子商務應用程序,而基礎則側重於可用性和

本文討論了確保PHP文件上傳的確保,以防止諸如代碼注入之類的漏洞。它專注於文件類型驗證,安全存儲和錯誤處理以增強應用程序安全性。

本文討論了在PHP中實施API速率限制的策略,包括諸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之類的庫。它還涵蓋監視,動態調整速率限制和手

本文討論了使用password_hash和pyspasswify在PHP中使用密碼的好處。主要論點是,這些功能通過自動鹽,強大的哈希算法和SECH來增強密碼保護

本文討論了OWASP在PHP和緩解策略中的十大漏洞。關鍵問題包括注射,驗證損壞和XSS,並提供用於監視和保護PHP應用程序的推薦工具。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版
好用的JavaScript開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。