官术网_书友最值得收藏!

1.7 刪除

刪除指的是刪去特定索引的值的過程。

下面以刪除購物清單數組索引2處的值為例。在這個數組中,這個值是"cucumbers"

第1步:從數組中刪除"cucumbers",如下圖所示。

嚴格意義上來說,刪除"cucumbers"只需1步。但有一個問題:數組中間有了一個空格子。中間有空格子的數組是無效的。要解決這個問題,需要把"dates""elderberries"左移。因此刪除操作還需要額外步驟。

第2步:左移"dates",如下圖所示。

第3步:左移"elderberries",如下圖所示。

結果,這個刪除操作用了3步。1步是刪除元素,另外2步是移動元素來填補空格子。

和插入一樣,刪除元素的最壞情況是刪除數組中的第一個元素。因為索引0會變成空格子,所以必須把剩余的所有元素都左移。

對有5個元素的數組來說,刪除第一個元素需要1步,移動4個剩余的元素需要4步。對有500個元素的數組來說,刪除第一個元素需要1步,移動剩余的元素需要499步。因此,對于有N個元素的數組,刪除操作最多需要N步。

恭喜!你已經分析完第一個數據結構的時間復雜度。你已經學會了如何分析數據結構的效率,之后你會發現,不同數據結構的效率也不同。這一點很關鍵,因為為代碼選擇正確的數據結構直接決定了軟件性能。

接下來要介紹集合,乍一看它和數組很相似。不過,你會發現同樣的操作在數組和集合中有著不同的效率。

主站蜘蛛池模板: 秭归县| 吉林市| 连城县| 清苑县| 南雄市| 灵台县| 健康| 洪泽县| 封开县| 雅安市| 淳化县| 柳州市| 平果县| 荣成市| 怀化市| 宾阳县| 始兴县| 孝昌县| 安化县| 鲁山县| 怀化市| 汕尾市| 龙山县| 洪雅县| 百色市| 临高县| 开原市| 佳木斯市| 深圳市| 淳安县| 朝阳区| 阿拉善右旗| 卫辉市| 喀喇沁旗| 北海市| 土默特左旗| 罗甸县| 凤翔县| 安阳县| 页游| 阿城市|