數(shù)組弛秋,所有的程序設(shè)計(jì)語(yǔ)言學(xué)習(xí)之初都有它的身影。根據(jù)數(shù)組中存儲(chǔ)的數(shù)據(jù)元素之間的邏輯關(guān)系俐载,可以將數(shù)組分為 : 一維數(shù)組蟹略、二維數(shù)組、…遏佣、n維數(shù)組挖炬。
- n維數(shù)組中,維數(shù) n 的判斷依據(jù)是:根據(jù)數(shù)組中為確定元素所在位置使用的最少的下標(biāo)個(gè)數(shù)状婶。
數(shù)組 線性表
數(shù)組和順序表的本質(zhì)不同意敛。數(shù)組作為一種數(shù)據(jù)類型,作用是將類型相同的數(shù)據(jù)存儲(chǔ)在一整塊內(nèi)存中膛虫,數(shù)組中存儲(chǔ)的數(shù)據(jù)之間沒(méi)有任何邏輯關(guān)系草姻,誰(shuí)也不認(rèn)識(shí)誰(shuí)。
順序表作為線性表的存儲(chǔ)結(jié)構(gòu)稍刀,存儲(chǔ)的這些數(shù)據(jù)元素在物理存儲(chǔ)結(jié)構(gòu)上相鄰的同時(shí)撩独,在邏輯結(jié)構(gòu)上也相鄰,每個(gè)數(shù)據(jù)元素都清楚地知道緊挨著它的前邊的元素和后邊的元素账月。
如果用一句話來(lái)描述兩者之間的關(guān)系综膀,就是:用數(shù)組來(lái)存儲(chǔ)的線性表是順序表。
在數(shù)組中調(diào)取數(shù)據(jù)元素
在n維數(shù)組中調(diào)取數(shù)據(jù)元素局齿,需要知道以下因素:
數(shù)組存放的起始位置(也就是數(shù)組中第一個(gè)元素的存儲(chǔ)位置)僧须。
被調(diào)取元素在 n 維數(shù)組中的具體位置(例如,二維數(shù)組需要知道被調(diào)取元素 aij 在數(shù)組中的行標(biāo) i 和列標(biāo) j )项炼。
數(shù)組中單個(gè)數(shù)據(jù)元素占用的內(nèi)存空間担平,一般用 L 表示(數(shù)組中存放的數(shù)據(jù)的類型都一樣)示绊。
如果在以行序存儲(chǔ)的二維數(shù)組 anm 中查找某個(gè)數(shù)據(jù)元素 aij 的存儲(chǔ)位置,方法是:
- LOC(i,j) = LOC (0,0) + (im+j)L暂论;
矩陣壓縮存儲(chǔ)(十字鏈表面褐、三元組順序表、行邏輯銜接的順序表)
需要進(jìn)行壓縮的矩陣主要分為兩大類:
- 矩陣中含有大量的相同數(shù)值取胎,稱為特殊矩陣(例如對(duì)稱矩陣和上下三角矩陣)展哭。
- 矩陣中只有極少量的元素是非 0 元素,稱為稀疏矩陣闻蛀。