今天給一個學生輔導歸併排序,他問了上面這個問題.
下面是我的一點個人體會,對比一下左閉右開和左閉右閉區間的特點
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、最關鍵的地方是右閉無法表達出序列爲空的情況,也就是右閉實際上假定了序列裏至少只有一個元素,但是這個假定很多時候是不滿足的,而右開就可以表示出空集