算法和程序之間有什么關系?
程序 = 算法 + 數據結構可能有很多會編程的人,不贊成這個觀點,說自己不會算法也可以編程啊。但是我認為一個好的程序一定包含了好的算法,好的算法可以提高程序的運行速度。
舉一個簡單的例子:
有一個年級的成績已經從高到低排好序了,我想估計一下,75分能排第幾名?可能大家會說有什么難的,一直從高到低往下找啊,找到75分就知道,75分能排第幾名了。但是你有沒有想過,既然成績到已經排序了,我直接從中間開始查找,例如中間的分數為80分,那么75分就應該包含在(75,到最低分這個區間上],又把這個區間對比查找,這樣一直縮小區間,最終就能找到了。這就是一個二分查找或者說是折半查找的算法。
上面例子,就是查找比一直這就是懂算法人和不懂算法人的差別,折半查找的用時就會比順序查找的少:
順序查找:最壞時間復雜度是O(n);最優時間復雜度O(1);平均時間復雜度O(n)折半查找:最壞時間復雜度O(log n);最優時間復雜度O(1);平均時間復雜度O(log n)數據結構也是程序編寫中的重要一環,數據的結構設計得好,也可以提高程序執行效率,并且還可以減少空間的占用。
所以我覺得學好算法對編程有很大的好處。
如果覺得我的回答解決了您的疑問,可以給我點個贊,要能關注我就太好了,我會定期發布一些關于IT的文章。----- 一個喜歡IT知識的程序員
上一篇可以做直播分享設計經驗嗎
下一篇申請日期和離職日期