从C语言的角度重构数据结构系列(二)-如何衡量一个算法的优劣?
前言
在學(xué)習(xí)具體的數(shù)據(jù)結(jié)構(gòu)和算法之前,每一位初學(xué)者都要掌握一個(gè)技能,即善于運(yùn)用時(shí)間復(fù)雜度和空間復(fù)雜度來(lái)衡量一個(gè)算法的運(yùn)行效率。
在這里給自己打個(gè)廣告,需要的小伙伴請(qǐng)自行訂閱。
python快速學(xué)習(xí)實(shí)戰(zhàn)應(yīng)用系列課程
https://blog.csdn.net/wenyusuran/category_2239261.html
手把手教你ML機(jī)器學(xué)習(xí)算法源碼全解析
https://blog.csdn.net/wenyusuran/category_2239263.html
所謂算法,即解決問(wèn)題的方法。同一個(gè)問(wèn)題,使用不同的算法,雖然得到的結(jié)果相同,但耗費(fèi)的時(shí)間和資源肯定有所差異。就比如擰一個(gè)螺母,扳手和鉗子都可以勝任,但使用鉗子擰螺母肯定沒(méi)有扳手的效率高。
這也就意味著,如果解決問(wèn)題的算法有多種,我們就需要從中選出最好的那一個(gè)。那么,怎么判斷哪個(gè)算法更好(或者更優(yōu))呢?
1.時(shí)間復(fù)雜度和空間復(fù)雜度
1.1“好”算法的標(biāo)準(zhǔn)
解決一個(gè)問(wèn)題的方法可能有很多,但能稱得上算法的,首先它必須能徹底解決這個(gè)問(wèn)題(稱為準(zhǔn)確性),且根據(jù)其編寫(xiě)出的程序在任何情況下都不能崩潰(稱為健壯性)。
注意,程序和算法是完全不同的概念。算法是解決某個(gè)問(wèn)題的想法、思路;
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的从C语言的角度重构数据结构系列(二)-如何衡量一个算法的优劣?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 从C语言的角度重构数据结构系列(一)-数
- 下一篇: tableau可视化数据分析60讲(一)