自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么數(shù)組的下標(biāo)從 0 開(kāi)始?

開(kāi)發(fā) 前端
數(shù)組是一組連續(xù)內(nèi)存空間存儲(chǔ)的具有相同類(lèi)型的數(shù)據(jù),整個(gè)排列像一條線(xiàn)一樣,是一種線(xiàn)性表數(shù)據(jù)結(jié)構(gòu)。

[[410309]]

本文轉(zhuǎn)載自微信公眾號(hào)「微觀技術(shù)」,作者Tom哥  。轉(zhuǎn)載本文請(qǐng)聯(lián)系微觀技術(shù)公眾號(hào)。

首先,我們來(lái)復(fù)習(xí)下數(shù)組的定義

數(shù)組是一組連續(xù)內(nèi)存空間存儲(chǔ)的具有相同類(lèi)型的數(shù)據(jù),整個(gè)排列像一條線(xiàn)一樣,是一種線(xiàn)性表數(shù)據(jù)結(jié)構(gòu)。

那么,問(wèn)題來(lái)了,數(shù)組的下標(biāo)為什么要從 0 開(kāi)始?從 1 開(kāi)始行不行?

端好你的小茶杯,開(kāi)始進(jìn)入正題

數(shù)組之所以廣泛使用,是因?yàn)樗С蛛S機(jī)訪(fǎng)問(wèn)。

什么叫隨機(jī)訪(fǎng)問(wèn)?

數(shù)據(jù)在內(nèi)存中都是按順序存放的,通過(guò)下標(biāo)直接觸達(dá)到某一個(gè)元素存放的位置。

公式:

  • Tom哥[n] = base_address + n * data_size
    • base_address,表示數(shù)組的首地址
    • n,表示偏移量
    • data_size,表示數(shù)組類(lèi)型的字節(jié)數(shù)
  1. ① 讀取上面數(shù)組的 【0】位置的 `微` 
  2. ② 讀取上面數(shù)組的 【9999】位置的 `注` 
  3.  
  4. 由于基于計(jì)算的內(nèi)存地址讀取數(shù)據(jù),上面兩種情況的耗費(fèi)的時(shí)間是一樣,時(shí)間復(fù)雜度為 O(1) 

注意:想要使用隨機(jī)訪(fǎng)問(wèn),一定要滿(mǎn)足兩個(gè)條件: 1、連續(xù)的內(nèi)存空間 2、相同類(lèi)型的數(shù)據(jù)

知識(shí)補(bǔ)充:

與隨機(jī)訪(fǎng)問(wèn)對(duì)應(yīng)的是順序訪(fǎng)問(wèn)

順序訪(fǎng)問(wèn):鏈表在內(nèi)存中不是按順序存放的,而是通過(guò)指針連在一起,訪(fǎng)問(wèn)某一元素,必須從鏈頭開(kāi)始順著指針才能找到某一個(gè)元素。

突然,一個(gè)奇怪的念頭冒了出來(lái),假如我們將數(shù)組的首個(gè)下標(biāo)從 1 開(kāi)始 ,會(huì)怎么樣?

我們讀取 下標(biāo)為n 的數(shù)據(jù)

公式:

  • Tom哥[n] = base_address + (n-1) * data_size

與上面的公式的區(qū)別,多了一次 n-1 操作

雖然也能讀取數(shù)組中的值,但是多了一次減法的指令運(yùn)算。

數(shù)組是一個(gè)最基礎(chǔ)、最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)。要知道我們的上層API內(nèi)部很多都會(huì)依賴(lài)于數(shù)組,而互聯(lián)網(wǎng)應(yīng)用又講究一個(gè)高并發(fā),一言不合就是千萬(wàn)級(jí)QPS,如此高頻的訪(fǎng)問(wèn)量,這個(gè)冗余的減運(yùn)算 就會(huì)放大無(wú)數(shù)倍,產(chǎn)生巨大的性能損耗。

這樣說(shuō),可能大家感受不一定明顯!!!

”我在馬路邊撿到一分錢(qián),把它交到警察叔叔手里邊“。現(xiàn)在再有一分錢(qián),你還會(huì)撿嗎,估計(jì)很多人都看不上眼,但要是全國(guó)人民每人給你一分錢(qián)呢

14億 * 1分錢(qián) = 1400萬(wàn) 人民幣

是不是可以立馬辭職,回家躺平了!

 

量變引發(fā)質(zhì)變,做軟件開(kāi)發(fā),我們一定要考慮將性能優(yōu)化到極致,骨子里透著工匠精神。

 

責(zé)任編輯:武曉燕 來(lái)源: 微觀技術(shù)
相關(guān)推薦

2014-02-01 21:25:08

Python數(shù)組

2022-05-24 08:31:05

C語(yǔ)言檢查數(shù)組

2023-11-04 16:26:18

C語(yǔ)言數(shù)組

2020-12-14 08:00:31

計(jì)算機(jī)計(jì)數(shù)程序

2024-02-06 09:55:33

框架代碼

2015-05-29 11:14:31

程序員開(kāi)始看書(shū)

2023-03-29 08:52:58

視覺(jué)Vue組件庫(kù)

2022-11-26 00:34:57

數(shù)組Java程序

2022-08-31 14:24:03

數(shù)字化轉(zhuǎn)型小程序平臺(tái)

2024-06-07 09:13:23

2022-08-12 21:40:41

FedoraCC0許可證

2019-04-22 09:58:25

C語(yǔ)言Web操作系統(tǒng)

2016-11-21 15:22:47

GitHub操作開(kāi)源

2018-05-23 15:20:08

區(qū)塊鏈數(shù)字貨幣比特幣

2019-01-29 14:29:03

微服務(wù)路由

2013-01-22 09:35:27

Hadoop存儲(chǔ)

2023-03-01 07:37:10

數(shù)組鏈表性能

2017-02-07 09:37:46

2011-07-03 18:28:13

網(wǎng)站優(yōu)化

2021-06-28 16:05:19

數(shù)據(jù)庫(kù)代碼技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)