你的程式碼中有排序。寫二分法函式的時候,最好傳的實參是一個排序好的list。將排序放到測試時間的外邊,再看一下。對於判斷一個演算法好不好,用時間複雜度。
在計算機科學中,演算法的時間複雜度是一個函式,它定量描述了該演算法的執行時間。這是一個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大O符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。舉例,如果一個演算法對於任何大小為的輸入,它至多需要的時間執行完畢,那麼它的漸近時間複雜度是。
計算時間複雜度的過程,常常需要分析一個演算法執行過程中需要的基本操作,計量所有操作的數量。通常假設一個基本操作可在固定時間內完成,因此總執行時間和操作的總數量最多相差一個常量係數。
有時候,即使對於大小相同的輸入,同一演算法的效率也可能不同。因此,常對最壞時間複雜度進行分析。最壞時間複雜度定義為對於給定大小的任何輸入,某個演算法的最大執行時間,記為。通常根據對時間複雜度進行分類。比如,如果對某個演算法有,則稱其具有線性時間。如有,則稱其具有指數時間。
你的程式碼中有排序。寫二分法函式的時候,最好傳的實參是一個排序好的list。將排序放到測試時間的外邊,再看一下。對於判斷一個演算法好不好,用時間複雜度。
在計算機科學中,演算法的時間複雜度是一個函式,它定量描述了該演算法的執行時間。這是一個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大O符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。舉例,如果一個演算法對於任何大小為的輸入,它至多需要的時間執行完畢,那麼它的漸近時間複雜度是。
計算時間複雜度的過程,常常需要分析一個演算法執行過程中需要的基本操作,計量所有操作的數量。通常假設一個基本操作可在固定時間內完成,因此總執行時間和操作的總數量最多相差一個常量係數。
有時候,即使對於大小相同的輸入,同一演算法的效率也可能不同。因此,常對最壞時間複雜度進行分析。最壞時間複雜度定義為對於給定大小的任何輸入,某個演算法的最大執行時間,記為。通常根據對時間複雜度進行分類。比如,如果對某個演算法有,則稱其具有線性時間。如有,則稱其具有指數時間。