【ZJU数据结构笔记】复习前准备

2020.02.22到了周末,大致的计划是看看自己周一到周五的题目的题解,然后再次进行练习,同时在bilibili上重修一下ZJU陈越姥姥的数据结构课,补一下已经忘掉的知识点


对程序和算法使用clock()捕捉调用耗费时间

clock():捕捉从程序开始运行到clock()被调用时所耗费的时间,单位时clock tick"时间打点"
常数CLK_TCk:机器时钟每秒所走的时钟打点数

#include<stdio.h>
#include<time.h>
//clock_t是clock()函数返回的变量类型
clock_t start ,stop;
//以秒为单位计算函数运行时间
double duration;
int main(){
  start = clock();
  Function();//此处插入函数
  stop = clock();
  duration = ((double)(stop - start) / CLK_TCK);
  return 0;
}

若函数的运行时间还不够一个tick,想要比较两个函数的调用时间,只需要让被测函数重复运行充分多次,使得测出的总时钟打点间隔充分长,最后计算被测函数平均每次运行的时间即可


什么是算法?

有限的指令集 + 接受输入(有些情况不需要输入) + 产生输出 + 在一定有限步骤后终止
一个好的算法的衡量角度

空间复杂度S(N) : 算法写成的程序在执行时占用存储单元的长度
时间复杂度T(N) :算法写成的程序在执行时耗费时间的长度
//N与问题规模有关

好的算法
经常关注以下两种复杂度
T-worst(n)最坏情况复杂度(更常分析)
T-avg(n)平均复杂度
使用复杂度的渐进表示法,上界(O(n))和下界(Ω(n))不唯一,但要注重分析效率,尽量贴合真实情况
在这里插入图片描述在这里插入图片描述避免N3到N的阶乘的算法!!!有意识的去优化N2算法,降低复杂度

复杂度分析小窍门

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值