算法是程序的靈魂,現(xiàn)在火熱的人工智能,算法也是核心,所以你知道算法的重要性了吧
程序=數(shù)據(jù)結(jié)構(gòu)+算法+某種編程語(yǔ)言
算法是一組可行的,確定的和有窮的規(guī)則,是解決問(wèn)題的一個(gè)抽象的步驟
算法具備5個(gè)特征:
1,有窮性
算法的執(zhí)行次數(shù)是有限的
執(zhí)行時(shí)間也是有限的
2,確切性
算法的每一步執(zhí)行做什么事是明確的
3,輸入
所謂的輸入,就是要做的事情,比如計(jì)算1-100數(shù)字之和,1-100就是輸入
4,輸出
算法應(yīng)該有明確的輸出,注意并非是說(shuō)每次的輸出結(jié)果都是一致的。
比如計(jì)算1-100數(shù)字之和,那這個(gè)屬于確定性算法,每次的結(jié)果是一致的
而如果是非確定性算法,則每次結(jié)果不一定一樣
5,可行性
算法的每個(gè)步驟必須是切實(shí)可行的,且可以在有限時(shí)間完成
提個(gè)思考題:算法和數(shù)據(jù)結(jié)構(gòu)的關(guān)系是怎么樣的?
答案:數(shù)據(jù)結(jié)構(gòu)是算法實(shí)現(xiàn)的基礎(chǔ)
數(shù)據(jù)結(jié)構(gòu)用來(lái)表示被處理的對(duì)象
算法用來(lái)表示處理的核心方法
編程語(yǔ)言就是我們用來(lái)描述算法的一種方式