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