列表和字典操作的時間復雜度


列表操作的時間測試

timeit 模塊的使用

def test1():
    li = [for i in range(10000)]
    
    
#1、生成一個定時器對象
time1 = timeit.Timer('test1()','from __main__ import test1')  #參數接受要測試的代碼塊,以及導入的接口

#2、配置測試次數
ret = time1 = time1.timeit(100)
print(ret)

實際測試列表各操作時間

import timeit


def test1():
    li = []

    for i in range(10000):
        li.append(i)


def test2():
    li = []
    for i in range(10000):
        li += [i]


def test3():
    li = [i for i in range(10000)]


def test4():
    li = list(range(10000))


def test5():
    li = []
    for i in range(10000):
        li.insert(-1, i)


if __name__ == '__main__':
    timer1 = timeit.Timer('test1()', 'from test100 import test1')
    timer2 = timeit.Timer('test2()', 'from test100 import test2')
    timer3 = timeit.Timer('test3()', 'from test100 import test3')
    timer4 = timeit.Timer('test4()', 'from test100 import test4')
    timer5 = timeit.Timer('test5()', 'from test100 import test5')
    print('t1', timer1.timeit(100))
    print('t2', timer2.timeit(100))
    print('t3', timer3.timeit(100))
    print('t4', timer4.timeit(100))
    print('t5', timer5.timeit(100))

測試結果:

t1 0.07158424341100353
t2 0.07301271975410409
t3 0.03303415543256208
t4 0.020644924926769975
t5 0.13402191468167618

列表與字典內置方法的時間復雜度



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM