哨兵可以防止数组越界
在插入排序中如果没有定义哨兵的话,那么在寻找插入的位置的时候,就会出现数组下标为-1的情况
for(j=i-1;temp<arr[j];j--)
在这个时候,如果temp小于arr[0];那么j--,就会被执行,那么就会出现j=-1的情况
(注:并不影响运行)=。=
在c/c++中并不会给你说,但是这有很大的风险(对不属于本数组的内存赋值),会造成一些很难找出来的错误。
所以,一定要小心
哨兵可以防止数组越界
在插入排序中如果没有定义哨兵的话,那么在寻找插入的位置的时候,就会出现数组下标为-1的情况
for(j=i-1;temp<arr[j];j--)
在这个时候,如果temp小于arr[0];那么j--,就会被执行,那么就会出现j=-1的情况
(注:并不影响运行)=。=
在c/c++中并不会给你说,但是这有很大的风险(对不属于本数组的内存赋值),会造成一些很难找出来的错误。
所以,一定要小心