本质是个函数,表示复杂度的函数。
用O渐进粗略表示,如O(1), O(N)。(这个符号以前在学拓扑结构时见过,现在回想,也确实是算法相关的):
1)常数用O(1)表示;
2)保留最高阶项,并去掉系数。2N^3+N+10----->O(N^3)。
3)对于多情况复杂度,按最复杂情况的计算。
与语句执行次数有关的表达式。主要按逻辑执行次数,在实际代码中会有些冗余次数。
与临时额外占用内存大小有关的表达式,即临时变量的个数。
例:N个元素的数组,为O(N);函数递归的F(N),也是N个地址,为O(N)。
相比时间,空间的额外地址是可以重复利用的。你再怎么使用一个N元素的数组,它还是只被分配了N个空间。
客户提一个需求,你可以想到多个不同的思路去写代码,再从这些思路中选择复杂度最小的一个思路。
(想不到,想不到,学了基础知识却无量的练习,漫长)
居然真的整一个月完成了从2023/12/18写的学习C语言目标,但是欠缺练题,练习的量。
之后的目标,要做的事:
我也不知道,毕业了简历石沉大海,时间不多了:
可能是什么牛客网,力扣之类的网站做做题目。
可能是看看诸如C++ primer plus之类的经典语言书籍。
可能是继续学着数据结构,C++,linux系统。
可能是转向嵌入式,看看什么ARM,linux系统。
可能是想做后端,学java了,看着和网络挺近,最起码是上学学的理论给实际落实了。
可能没准放弃了,做个小说家,做个文职,考公务员去了。
可能继续申博,读博士了,可我没有具体的研究方向。读博读博,确实是改命的良机,起码学校看你的学习成绩,除了成绩一无所有,可我没有热爱的具体的研究方向。