0
在DataRow的實例中通過名稱訪問列的時間複雜度是多少?DataRow索引器的時間複雜度是多少?
object Foo(DataRow row, string columnName)
{
// What is the time complexity of the below line O(1)/O(n)/?
return row[columnName];
}
在DataRow的實例中通過名稱訪問列的時間複雜度是多少?DataRow索引器的時間複雜度是多少?
object Foo(DataRow row, string columnName)
{
// What is the time complexity of the below line O(1)/O(n)/?
return row[columnName];
}
我看了一眼Reflector,可以確認有問題的代碼的時間複雜度爲O(1)。實際數據存儲在DataColumn實例中,使用按記錄號索引的普通舊數組...每列一個數組。 DataColumn是通過Hashtable從名稱中獲得的,記錄號是直接從DataRow實例中獲取的。所以你有一個散列表查找和一個數組查找,兩者都是O(1)。
爲您的努力和調查起首!你讓我自己去看Reflector並瞭解它是如何工作的。 非常感謝! – 2009-11-04 16:18:16