演算法筆記一 概述

2021-06-26 09:37:26 字數 469 閱讀 4223

分析乙個演算法,主要是考量它的執行的時間代價和空間代價,而在評估時間代價時,還要分析下最好情況下的代價和最壞情況下的代價。

最好情況,用來分析該演算法的最佳應用場景

最壞情況,用來確定該演算法的最長執行時間的上限

某些演算法可能會更加的關注於平均情況,當平均情況趨向於較好情況時,是有意義的,這裡就需要對其平均情況發生的概率,進行分析,但大多數演算法,其平均情況基本與最壞情況相當

分析完最好情況和最壞情況,就能夠得到其資料規模增長時的增長量級,其直接決定了該演算法在面對實際生產應用中的大規模資料時,所表現出來的實際效果,並且用來計算該演算法所適用的乙個臨界點,從而當實際資料規模超過臨界點時,給出告警

所以,在後續的所有演算法筆記中,都會對最好情況和最壞情況給出分析。

對於採用分治手段的演算法,其能夠很好的利用現代計算機多cpu的優點,在分析這種演算法時,其通常採用的方法為:分解、解決、合併,並且在分解的過程中,必須有乙個終止閥,用來防止其無限的分解!

演算法學習筆記(一) 概述

系統的學習演算法對乙個程式設計師是十分有必要的。mit 講授 演算法導論 的 erik demaine 教授說過 if you want to become a good programmer,you can spend 10 years programming,or spend 2 years p...

分類演算法(一) 概述

機器學習分類演算法有很多,lr svm 貝葉斯 隨機森林 fasttext knn dl gbdt等,相關變種更是數不勝數。個人認為svm還是比較有效的方法,可以作為基準,當然這些方法都各有優劣。不同分類演算法的優缺點 介紹了svm lr 貝葉斯 決策樹等分類方法的優缺點。相關專題 包括對不同分類方...

排序演算法 一 概述

排序是程式開發中一種非常常見的操作,對一組任意的資料元素 或記錄 經過排序操作後,就可以把他們變成一組按關鍵字排序的有序佇列。對於排序演算法從以下幾點去衡量演算法的優劣 時間複雜度,所謂時間複雜度就是將一組數從無序到有序所花費的時間,通常使用乙個量級去衡量,比如o n 或者 o n n 空間複雜度,...