MOOC浙江大学陈月、何钦铭老师《数据结构》学习笔记01

本文介绍两种多项式求和的方法,并通过运行时间对比展示其效率差异。同时,探讨了算法效率与数据结构、空间利用率及算法巧妙程度的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

①多项式求和的两种方法。

double f(int n, double a[], double x)
{   int i;
    double p = a[0];
    for ( i=1; i<=n; i++)
        p += (a[i] * pow(x, i));
    return p;
}

double f(int n, double a[], double x)
{   int i;
    double p = a[n];
    for( i=n; i>0; i--)
        p = a[n-1] + x*p;
    return p;   
} //professional programmer 

后者运行速度更快。

②求函数运算时间的函数clock()。

#include <stdio.h>
#include <time.h>//需引用头文件

clock_t start, stop;
/* clock_t是clock()函数返回的变量类型 */
double duration;
/* 记录被测函数运行的时间 以s为单位 */
int main () 
{
    start = clock();
    MyFunction();//被测函数的调用
    stop = clock();
    duration = ((double)(stop - start))/CLK_TCK;    
} 

对1.1什么是数据结构的总结。
1、数据结构和算法是不能割裂的。
2、从图书馆摆放书的例子来看,解决问题的效率跟数据的组织有关系。
3、关于循环和递归,递归十分占用内存,小的例子可能不明显,但是大的例子递归无法执行。由这个例子来看,解决问题的效率跟空间利用率有关。
4、从多项式求和的两种方法的例子来看,解决问题的效率跟算法的巧妙程度有关。
5、数据对象、操作、算法。
6、抽象数据类型(Abstract Data Type)只关心操作是什么,不关心实现细节。

对于1.2什么是算法的总结。
1、算法的定义:有限指令集、接受输入(一般)、产生输出、在有限步骤后终止、指令(无歧义、计算机可处理、不依赖于语言)。
2、空间复杂度S(n)和时间复杂度T(n)决定一个算法是否优秀。
3、复杂度的渐进表示方法:上界O、下界Ω、上下界相等θ。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值