来源于书本,这个小技巧还是记录一下,其实它所表达的意思就是,for循环和while循环的一点微妙区别。
在for循环中,比如:
for(i=1;i<=n;i++) { if(a[i]==key) return i; }
比较、自增、加上边界的判定,一共需3步,而while循环,则只需要两步,减去了边界判定的一步。
while(a[i]!=key) { i--; }
int search(int a[],int n,int key) { int i; a[0]=key;/*设置a[0]为关键字值,称为“哨兵"*/ i=n;/*循环从尾部开始*/ while(a[i]!=key) { i--; } return i; }