數(shù)據(jù)類型
- 系統(tǒng)定義的數(shù)據(jù)類型朴则,也就是我們常說(shuō)的基本數(shù)據(jù)類型权纤,在java里面就是八大數(shù)據(jù)類型(int、float乌妒、double.....)汹想。
- 用戶定義的數(shù)據(jù)類型。在c和c++里面是結(jié)構(gòu)體撤蚊,java里面就是我們說(shuō)的類古掏。
什么是數(shù)據(jù)結(jié)構(gòu)?
數(shù)據(jù)結(jié)構(gòu)就是計(jì)算機(jī)中存儲(chǔ)和組織數(shù)據(jù)的一種特定方式侦啸,使得數(shù)據(jù)處理更加有效槽唾。數(shù)據(jù)結(jié)構(gòu)也分為兩種類型:
- 線性數(shù)據(jù)結(jié)構(gòu):可以按線性次序訪問(wèn)元素,并不要求所有元素連續(xù)存儲(chǔ)匹中。比如鏈表夏漱、棧和隊(duì)列。
- 非線性數(shù)據(jù)結(jié)構(gòu):以非線性次序來(lái)存儲(chǔ)和訪問(wèn)顶捷,如樹和圖。
抽象數(shù)據(jù)類型(ADT)
為了簡(jiǎn)化求解問(wèn)題的過(guò)程屎篱,將數(shù)據(jù)結(jié)構(gòu)和相關(guān)的運(yùn)算結(jié)合起來(lái)服赎,就稱為ADT。
什么是算法交播?
算法就是用一條接一條的指令來(lái)解決給定的問(wèn)題重虑。
增長(zhǎng)率
image
一些常用的增長(zhǎng)率
image
不同增長(zhǎng)率之間的關(guān)系
image
算法分析有三種類型
最好情況
大O表示法:給出了函數(shù)f(n)的嚴(yán)格上限,可以表示為f(n) = O(g(n))秦士。f(n)假設(shè)為我們要求解的算法缺厉。
大O表示法的定義:
1.PNG
最壞情況
2.PNG
平均情況
3.PNG
常用的對(duì)數(shù)和累加公式
image
分治法主定理
image
問(wèn)題規(guī)模減小和遞歸求解主定理
image
上述的公式,在求解一些問(wèn)題的時(shí)候是非常有幫助的隧土。下面給幾個(gè)例子:
image
image