如果这篇博客帮助到你,可以请我喝一杯咖啡~
CC BY 4.0 (除特别声明或转载文章外)
请看下面的程序,在程序运行的效率方面,你能找出什么问题?
str1 = "Hello";
str2 = "World";
if(strcmp(str1, str2) > 0){
printf("str1 > str2")
}else if(strcmp(str1, str2) < 0){
printf("str1 < str2");
}else{
printf("str1 == str2");
}
在这个程序中,字符串比较小,这样写没有问题;但是如果字符串十分大或需要比较很多次,你每次都会浪费一次 strcmp 的时间!
正确的写法应该是这样的:
int ret = strcmp(str1, str2);
if(ret > 0){
printf("str1 > str2")
}else if(ret < 0){
printf("str1 < str2");
}else{
printf("str1 == str2");
}
其实在编程中,这类问题是很多的,归根结底就是一个字——懒!
有时候,“懒”是会付出代价的。
所以,编程的时候一定要长点心,如果可以通过创建一个或者多个新的变量来降低程序的复杂度或者让人容易理解,那么牺牲程序的“空间复杂度”也是可以接受的。