最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

問題解析:為什么數(shù)組下標從0?開始而不是?1??

 更新時間:2023年04月23日 17:24:13   作者:程序員小灰  
這篇文章主要為大家介紹了為什么數(shù)組下標是從0?開始而不是?1?呢的問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

很多小伙伴初學編程的時候都被元素下標折磨過,為什么很多編程語言要把 0 作為第一個下標索引,而不是直觀的 1 呢?

這個問題 Dijkstra 已經(jīng)解答過了,沒錯,就是你知道的 Dijkstra,Dijkstra 最短路徑算法,荷蘭語全名是 Edsger Wybe Dijkstra,于 1972 年獲得了圖靈獎,除了上面說的最短路徑算法,還有眾所周知的信號量和 PV 原語、銀行家算法等也是這位巨佬提出的。

原文在這里:https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html

感興趣的小伙伴可以去看下全文,下面我總結幾段核心的觀點:

首先來看個案例

如何用一個不等式(或者說表達式)來表示 [2,3,4,5,6,7,8,9,10,11,12] 這個連續(xù)的整數(shù)序列(一共 11 個數(shù))?

假設 i 是一個整數(shù),那么我們能夠迅速地寫出如下四個符合上述連續(xù)序列的不等式:

1)2 <= i < 13

2)1 < i <= 12

3)2 <= i <= 12

4)1 < i < 13

以上四個不等式均滿足要求,那是否有理由選擇其中的一種而不是另一種?

Dijkstra 說有理由的,選 1 和 2,因為這倆不等式有個很突出的優(yōu)點,就是不等式邊界的差(不等式右邊 - 不等式左邊)正好等于連續(xù)序列的長度

這里可以排除掉 3 和 4,那么 1 和 2 該如何選出最優(yōu)的表示?

1 和 2 不等式的區(qū)別

  • 1 不等式左邊(下界)等于序列中的最小值,不等式右邊(上界)大于序列中的最大值

  • 2 不等式左邊(下界)小于序列中的最小值,不等式右邊(上界)等于序列中的最大值

對于第 2 個不等式來說,下界小于序列中的最小值,這會出現(xiàn)一個問題,比如我們的連續(xù)序列是 [0,1,2,3,4]

那么按照第 2 個不等式的寫法,不等式的左邊就是 -1,-1 是非自然數(shù),而我們需要表示的連續(xù)序列是自然數(shù)序列,所以第 2 個不等式很不優(yōu)雅:我們需要用一個 非自然數(shù) 來作為 全是自然數(shù)的序列 的下界

因此,綜上所述,不等式 1 是最優(yōu)雅的選擇。

那么,選出一個看著非常順眼的不等式來表達長度為 N 的連續(xù)序列之后,下一個令人煩惱的問題是該為起始元素分配什么下標值?

遵循不等式 1 的規(guī)則:

  • 當從下標 1 開始時,下標范圍 1 ≤ i < N+1
  • 當從下標 0 開始時,下標范圍 0 ≤ i < N

哪個更優(yōu)雅?

Dijkstra 是這樣解釋的:從下標 0 開始能夠給出更好的不等式,因為元素的下標就等于序列中它前面的元素數(shù)(或者說 “偏移量”)。

問題解決!文末貼上巨佬 Dijkstra 的手稿:

以上就是問題解析:為什么數(shù)組下標從0 開始而不是 1 ?的詳細內(nèi)容,更多關于數(shù)組下標問題的資料請關注腳本之家其它相關文章!

相關文章

最新評論

德惠市| 郓城县| 那坡县| 浙江省| 色达县| 梧州市| 咸丰县| 苏尼特左旗| 抚顺市| 深泽县| 甘谷县| 定安县| 咸丰县| 临泽县| 龙岩市| 河曲县| 遵义县| 浠水县| 图片| 武功县| 淅川县| 类乌齐县| 长阳| 瑞金市| 洛南县| 班玛县| 哈尔滨市| 工布江达县| 莱州市| 高要市| 新蔡县| 江津市| 金沙县| 贞丰县| 获嘉县| 商河县| 吉林省| 霍山县| 鸡东县| 陇川县| 黄平县|