一个提高查找速度的小技巧

在一个数组中查找某一个元素,或是在一个字符串中查找某个字符,我们一般都会写出如下代码。这样的代码虽然简洁明了,但在数组元素很多的情况下,并不是一个很好的解决方案,今天我就来分享一个提高查找速度的小技巧.

 123456789101112131415161718192021//在一个int数组中查找某个元素intfind(intA[],intn,intelement){    for(inti=0;i<n;i++)    {        if(A[i]==element)            returni;    }    return-1;} //在一个字符串中查找某个字符intfind(string&str,charc){    for(inti=0;i<str.length();i++)    {        if(str[i]==c)            returni;    }    return-1;}

虽然每次都是写出这样的代码,但我总觉得for循环中的,昨天晚上看编程珠玑的时候发现了这个小技巧,今天就来分享一下。

通过哨兵的方式去掉这多余的判断,将上面两个方法改造如下:

 123456789101112131415161718192021222324252627282930313233343536373839//在一个int数组中查找某个元素intfind1(intA