運算的效能分析有乙個高深的詞彙——演算法分析,主要研究的是執行時間和空間的需求。對計算時間的描述一般通過增長量級,增長量級是一套函式,其漸進增長行為是等價的,用大o來表示。
o(1) < o(logb n) < o(n) < o(n logb n) < o(n)< o(n2)3)n )
對數演算法中的基數並不重要,指數演算法只適用於小資料問題。
python中算數運算的時間是常量,但超大整數的運算增加是線性的。索引操作也是常量時間,無論資料結構如何都是如此。只要迴圈體中的所有操作都是線性時間,則遍歷列表或者字典的for迴圈是線性時間。如果使用同樣的迴圈新增字串列表,那麼執行時間就是二次方的,所以通常採用join做字串拼接。
大多數字串和元組操作都是線性的,除了索引和len,都是常量時間,min和max是線性的,slice操作的時間與輸出的長度成正比,與輸出的大小無關。
大多數列表方法是線性的,一般而言,尾部新增和刪除元素是常量時間,排序是o(n logb n)。in操作符是線性搜尋,字串的count和find也是如此。
大多數字典操作和方法是常量時間,但copy和update的執行時間是線性的,keys,values與items是線性的,iterkeys,itervalues與iteritems是常量時間,但如果遍歷迭代器,迴圈也是線性的。
還記得有這樣一句名言,「如果只有一種資料結構的化,就用hash表吧!」
python 位運算 效能 Python位運算妙用
位運算就是直接對整數在記憶體中的二進位制位進行操作,位運算的效能較高,常用的位運算包含按位與 按位或 按位非 按位異或 有符號左移 如下是一些妙用的示例 判斷奇偶 常用思路通過除以2,判斷餘數是否為0 def isodd x return true if x 2 0 else false 如何使用位...
Python 基本運算
假設a 10,b 20 運算子 描述 例項 加 兩個物件相加 a b 輸出結果 30 減 得到負數或是乙個數減去另乙個數 a b 輸出結果 10 乘 兩個數相乘或是返回乙個被重複若干次的字串 a b 輸出結果 200 除 x除以y b a 輸出結果 2 整數除整數,只能得整數,要求小數需要將其中乙個...
簡談GTS使用中的效能問題
全域性事務服務 global transaction service,簡稱 gts 是一款高效能 高可靠 接入簡單的分布式事務中介軟體,用於解決分布式環境下的事務一致性問題。在單機資料庫下很容易維持事務的 acid atomicity consistency isolation durability...