爲什麼編程上一般習慣左閉右開區間而不是兩頭都封閉?

今天給一個學生輔導歸併排序,他問了上面這個問題.

下面是我的一點個人體會,對比一下左閉右開和左閉右閉區間的特點

1.使用左開右閉的話,則子區間的長度公式爲legnth=end-start,

右閉的話長度公式爲legnth=end-start+1

顯然後者的計算要複雜一些

2、已知長度L的情況下,右開的調用形式爲f(array,start,start+L)

,右閉的調用形式爲f(array,start,start+L-1),需要調用者自己記得-1,右閉增加了調用者的使用難度,

3、右開時,for循環格式爲

 for(i=start;i<end;++i)

右閉時,for循環格式爲

 for(i=start;i<=end;++i),要多打一個=號,增加了打字量

4、最關鍵的地方是右閉無法表達出序列爲空的情況,也就是右閉實際上假定了序列裏至少只有一個元素,但是這個假定很多時候是不滿足的,而右開就可以表示出空集

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章