python基本算法
算法优劣评判标准 时间复杂度: 定义:用来评估算法运行效率的一个式子 print('Hello World') O(1) for i in range(n): print('Hello World') O(n) for i in range(n): for j in range(n): print('Hello World') O(n^2) for i in range(n): for j in range(n): for k in range(n): print('Hello World') O(n^3) 注:O(1)、O(n)、O(n^2)..是一个单位,且当n足够大时,n^2的值可以忽略n的大小,所以计算时间复杂度时不会出现O(3)、O(n^2+n)的情况。 while n>1: print(n) n = n//2 输入:64 输出: 64 32 16 8 4 2 计算:2^6=64,执行次数6=log2 64 时间复杂度:O(logn) 小节: 时间复杂度是用来估计计算法运行时间的一个式子。 一般来说,时间复杂度高的算法比复杂度低的算法慢。 常见的时间复杂度(按效率排序) O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^2logn)<O(n^3) 复杂问题的时间复杂度 O(n!) O(2^n) O(n^n) 如何简单快速地判断算法复杂度