我有一個問題,我想對元組串列進行排序,首先按第一個元素,然后按第二個元素。
我發現使用 Python 很容易 - 所以回答
我的問題是這在內部是如何作業的?2按欄位排序的復雜性是什么?我們可以概括出領域的答案k嗎?
uj5u.com熱心網友回復:
這對排序的整體復雜性沒有影響。
選擇任何基于比較的排序演算法,并根據您的 2(或 k)個欄位為其提供正確的比較函式。
最好的比較排序在比較操作方面具有復雜性O(n log n)。因此,如果您有k要比較的欄位,則新的復雜性是O(k * n log n),但k相對于它是恒定的,n因此可以根據您想知道的確切內容排除。
缺點是您不能以相同的方式使用其他排序演算法(如計數排序、桶排序、基數排序……),因為它們不接受比較函式。您可以提供一個函式,以有序的方式對所有欄位對或 k 元組進行排序:它會為每個元素生成一個整數,然后您可以對這些整數進行排序。
正如 rici 所提到的,您還可以在每個欄位上運行穩定的排序演算法(不一定基于比較)k時間,從最不重要的欄位到最重要的欄位。因為每個排序都是穩定的,所以當兩個元素比較相等時,它會保持之前的順序,所以到最后每個欄位的順序都是正確的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/514792.html
