Abstract: This paper introduces the thinking of the shortest path’s Floyd in great details, and implements the algorithm with C language. Also, the article analyses the time complexity of the algorithm and tests it with Rational Quantify.
Keywords: shortest path; algorithm Floyd; algorithm analysis; GIS
本算法測試采用Rational Quantify工具進行,Quantify是一款面向VB、VC、JAVA的函數(shù)級性能分析工具,它可以自動的檢測出影響程序運行的性能瓶頸,同時提供圖形化的分析表格,幫助程序員進行性能的分析與優(yōu)化。
在性能優(yōu)化的過程中,一些程序員往往是憑著經(jīng)驗去分析自己所寫的代碼,找到性能瓶頸,這樣會面臨兩個問題:
(1)程序員所找到的性能瓶頸的代碼很可能是自己認為不合理的算法,但在優(yōu)化的過程中大家都知道性能的優(yōu)化往往不是優(yōu)化算法不合理的,而是主要優(yōu)化占用時間最長的函數(shù);
(2)在一個大型的項目中,如何在成千上萬的代碼中找到性能瓶頸是一個最頭痛的問題,如果自己不了解所在的項目那就更無法下手。
Quantify可以高效的發(fā)現(xiàn)問題,且不是通過代碼的檢查來發(fā)現(xiàn)問題則是關(guān)鍵,Quantify有以下幾個優(yōu)勢:
① 對當(dāng)前的開發(fā)影響特別的少,還集成在一些通用的開發(fā)工具中,大大的增強了使用的容易度,比如Visual Studio;
② 性能的顯示以圖形的方式進行,可以很直接的了解到性能所在的瓶頸;
③ 無需源代碼就可以對大多數(shù)的系統(tǒng)進行性能的分析;
④ 同時顯示的函數(shù)的信息非常的詳細,包含了調(diào)用的次數(shù),時間等,還有相關(guān)的調(diào)用關(guān)系;
⑤ 在測試功能的同時,對性能進行分析,不需要額外的輔助代碼;
本文中為了便于測試,采用隨機矩陣進行測試,隨機矩陣的對角線元素為零,其他元素是0至1000之間的隨機數(shù)。本例分別取了N={8,16,32,64,128,256,512}測試算法所耗CPU時間。