- 博客(3)
- 收藏
- 关注
原创 好家伙,这就是时间复杂度
时间复杂度:一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),进而分析f(n)随n的变化情况并确定T(n)的数量级。这里用"O"来表示数量级,给出算法的时间复杂度。T(n)=O(f(n));它表示随着问题规模的n的增大,算法的执行时间的增长率和f(n)的增长率相同,这称作算法的渐进时间复杂度,简称时间复杂度。而我们一般讨论的是最坏时间复杂度,这样做的原因是:最坏情况下的时间复杂度是算法在任何输入实例上运行时间的上界,分析最坏的情况...
2021-05-10 10:47:04 448
原创 内存对齐和结构体联合体
一、 内存对齐(一)、为什么会有内存对齐?1、为了提高程序的性能,数据结构(尤其是栈)应该尽可能的在自然边界上对齐。原因是为了访问未对齐的内存,处理器需要进行两次访问,而访问对齐的内存,只需要一次就够了。 这种方式称作“以空间换时间”在很多对时间复杂度有要求问题中,会采用这种方法。2、内存对齐能够增加程序的可移植性,因为不是所有的平台都能随意的访问内存,有些平台只能在特定的地址处处读取内存。 一般情况下内存对齐是编译器的事情,我们不需要考虑,但有些问题还是需要考虑的,毕竟c/c++是直接操作内存的
2021-05-10 10:33:12 198
原创 声明,定义,赋值,初始化的区别
声明:可以多次出现,只是告诉编译器有这么个对象,对象是在其他地方创建的。定义:只能出现一次,创建了一个对象,并为他分配一块内存空间。赋值:把值放到这块存储空间里面去,赋值时,赋值号左边叫做左值,代表一块存储空间。初始化:可以再定义的同时,把值放到存储空间里面去。...
2021-05-10 10:30:05 179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人