声明:本篇博客是博主阅读《漫画算法 小灰的算法之旅》所做的笔记,仅供学习,侵删,严禁转载!
另外,博主将书中的涉及的代码和算法将分别以C/python风格呈现出来,若有失误,欢迎指正!
算法概述
1 如何衡量算法的好坏
1.1 时间复杂度
时间复杂度是衡量算法运行时间长短的一种方式。
示例1 线性计算
T ( n ) = 3 n T(n) = 3n T(n)=3n
C代码
void eat1 ( int n){
for(int i = 0;i < n; i++){
printf("等待 1 分钟\n");
printf("等待 1 分钟\n");
printf("吃 1cm 面包\n");
}
}
Python代码
def eat1(n):
for i in range(n):
print("等待1min")
print("等待1min")
print("吃1cm面包")
示例2 对数计算
T ( n ) = 5 l o g n T(n) = 5 logn T(n)=5logn
C代码
void eat2(int n){
for(int i = n;i > 1; i = i/2){
printf("等待1分钟\n");
printf("等待1分钟\n");
printf("等待1分钟\n");
printf("等待1分钟\n");
printf("吃一半面包\n")
}
}
Python代码
def eat2(n):
while n > 1:
print("等待1min")
print("等待1min")
print