插入 *** 作的时间复杂度是O(n)
删除 *** 作的时间复杂度是O(n)
Pi(n-i+1)指的是插入i元素以后,需要移动的元素的个数,在第一个元素后面插入元素i需要移动n个元素,在第二个元素后面插入元素i需要移动元素(n-1)个元素;
依此论推,在第n个元素后面插入元素i需要移动1个元素,这是一个等差数列,首项为n,公差为1,最后一项是1,求和以后需要除以(n+1)就算出来结果了。
扩展资料:
一般情况下,算法中基本 *** 作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f (n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。
在各种不同算法中,若算法中语句执行次数为一个常数,则时间复杂度为O(1),另外,在时间频度不相同时,时间复杂度有可能相同,如T(n)=n2+3n+4与T(n)=4n2+2n+1它们的频度不同,但时间复杂度相同,都为O(n2)。
参考资料来源:百度百科-时间复杂性
如果能做一个动态表头
,将所有标题需要变动的部分做成单元格的引用,只要改动一处,所有的标题将一起跟着改变,这样就方便多了。后来经过尝试实现了这个目标:
1
制作表格标题初始化界面
为了 *** 作方便,我们先插入一
张新
工作表,命名为“初始化”。在C7单元格中输入“请输入单位名称:”的文字提示,这样D7单元格可用于输入单位名称。
接下来
右击
工具栏,选择“窗体”命令,打开“窗体”工具栏。在C9单元格中输入“时间:”,
D9
单元格用于显示标题中的年份。单击“窗体”工具栏中的〔微调框〕按钮,在紧靠着D9单元格后绘制一个微调框对象。类似地,在紧靠着F9单元格后面再绘制一个微调框用于调整表格标题中的月份。
在E9和
G9
单元格中分别输入“年”和“月”字,并设为右对齐。
右击“微调框1”,选择“设置控制格式”命令,此时会打开“对象格式”对话框,切换到其中的“控制”
选项卡
。在“当前值”框中输入一个默认的年份如“2005”,在“最小值”和“最大值”框中输入年份的上限和下限,“步长”为“1”,在“单元格链接”框中输入要显示年份单元格的绝对地址如“$D$9”,设置完成后,单击〔确定〕按钮,这样微调框1和D9单元格就链接好了。类似地,可以将“微调框2”和F9单元格链接起来,要注意的是最大值和最小值受到月份本身的限制。
2
设置表格标题
打开“加班记录”工作表,在表格标题位置处输入公式“=初始化!D7&&初始化!D9&&"年"&&初始化!F9&&"月份"&&"加班记录"”,按回车键(此时还不能看到最终效果),设置好标题的格式。类似地,只要稍作改变就可以将其他表格的标题一一制作好。
3
调试表格标题
以上 *** 作完成后我们就可以来调试了。回到“初始化”表中,输入学校名称并选择某年某月,此时返回到其他工作表中,我们就可以看到完整的表格标题了。
需要注意的是,用日期函数也可以让标题根据系统时间自动改变,但不方便调整到之前的某个年份或月份。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)