- 秒懂算法:用常識解讀數(shù)據(jù)結(jié)構(gòu)與算法
- (美)杰伊·溫格羅
- 656字
- 2022-10-08 17:10:03
1.2 數(shù)組:基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)
數(shù)組是計算機科學(xué)中最基本的數(shù)據(jù)結(jié)構(gòu)之一。我猜你以前用過數(shù)組,所以大概知道數(shù)組就是一系列數(shù)據(jù)元素。數(shù)組的用途廣泛,在許多場合能發(fā)揮作用。先來看一個簡單的例子。
要是看過那些允許用戶創(chuàng)建并使用雜貨店購物清單的應(yīng)用的源代碼,你可能會發(fā)現(xiàn)下面這樣的內(nèi)容。
array = ["apples", "bananas", "cucumbers", "dates", "elderberries"]
這個數(shù)組包含5個字符串,每個字符串表示我要在超市購買的東西。(你一定要試試接骨木莓。)
數(shù)組有自己專用的一些術(shù)語。
數(shù)組大小指的是數(shù)組能存放的數(shù)據(jù)元素的數(shù)量。因為上面這個購物清單數(shù)組能存儲5個值,所以它的大小是5。
數(shù)組的索引可以用來標(biāo)記數(shù)據(jù)在數(shù)組中的位置。
在大多數(shù)編程語言中,索引從0開始。所以在我們的例子中,"apples"
的索引是0,而"elderberries"
的索引是4,如下圖所示。

數(shù)據(jù)結(jié)構(gòu)操作
以數(shù)組為例,要理解數(shù)據(jù)結(jié)構(gòu)的性能,需要分析代碼操作數(shù)據(jù)結(jié)構(gòu)的常用方式。
許多數(shù)據(jù)結(jié)構(gòu)有以下4種基本使用方法,我們稱其為操作。
- 讀取:從數(shù)據(jù)結(jié)構(gòu)的特定位置查看某數(shù)據(jù)。對數(shù)組來說,就是查看特定索引的值。例如,在購物清單數(shù)組中查看位于索引2的物品就是一種讀取。
- 查找:尋找數(shù)據(jù)結(jié)構(gòu)中的特定值。對數(shù)組來說,就是檢查數(shù)組中是否存在這個值。如果存在,就檢查它的索引。例如,在購物清單中尋找
"dates"
的索引就是一種查找。 - 插入:向數(shù)據(jù)結(jié)構(gòu)中添加新的值。對數(shù)組來說,就是給數(shù)組增加一個位置,在里面添加一個新值。向購物清單中添加
"figs"
,就是在向數(shù)組插入新值。 - 刪除:從數(shù)據(jù)結(jié)構(gòu)中移除一個值。對數(shù)組來說,這意味著把其中一項移除。如果把
"bananas"
從購物清單中去掉,就從數(shù)組中刪除了這個值。
本章會分析數(shù)組的這4種操作的執(zhí)行速度。
推薦閱讀
- Monkey Game Development:Beginner's Guide
- C和C++安全編碼(原書第2版)
- Instant Typeahead.js
- Vue.js 3.0源碼解析(微課視頻版)
- Building a Recommendation Engine with Scala
- Full-Stack Vue.js 2 and Laravel 5
- Podman實戰(zhàn)
- Access 2010數(shù)據(jù)庫應(yīng)用技術(shù)(第2版)
- HTML5 APP開發(fā)從入門到精通(微課精編版)
- 案例式C語言程序設(shè)計實驗指導(dǎo)
- JSP程序設(shè)計實例教程(第2版)
- Java Web開發(fā)實例大全(基礎(chǔ)卷) (軟件工程師開發(fā)大系)
- ROS機器人編程實戰(zhàn)
- SFML Game Development
- Isomorphic Go