本周讨论的主要内容如下:
1.何为算法复杂度
经查询,列举如下:
算法复杂度是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),存在一个正常数c使得fn*c>=T(n)恒成立。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。一个算法所耗费的时间=算法中每条语句的执行时间之和
每条语句的执行时间=语句的执行次数×语句执行一次所需时间。举个例子,最近学习过的快速排序,从空间性能上看,尽管快速排序只需要一个元素的辅助空间,但快速排序需要一个栈空间来实现递归。最好的情况下,即快速排序的每一趟排序都将元素序列均匀地分割成长度相近的两个子表,所需栈的最大深度为log2(n+1);但最坏的情况下,栈的最大深度为n。这样,快速排序的空间复杂度为O(log2n)。
2.为何在python中在函数外调取函数内的变量会出现未定义。
经查询发现,python中存在全局变量概念,若需要在函数外调用函数内的变量,则需要在函数内进行声明global xxx,这样即可在全局进行调用,同时,函数外的变量是默认为全局变量的。
原文:https://www.cnblogs.com/menethil2/p/13978587.html