数据结构初章之时间复杂度/空间复杂度

本文介绍了数据结构的概念及其在计算机科学中的重要性,探讨了典型数据结构如二叉树,并详细解释了算法及其特性。此外,还分析了不同算法的时间复杂度和空间复杂度,例如二分查找算法。

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

第一次认识数据结构

数据结构:在计算机科学中,数据结构是计算中存储、组织数据的方式。数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。

典型的数据结构——二叉树:


在了解深层次数据结构之前还要理解一个概念——算法:在计算机科学之中,为任何良定义的具体计算步骤的一个序列,常用于计算、数据处理和自动推理。精确而言,算法是一个表示为有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数。

算法特性:输入:算法具有零个或者多个输入

输出:只要有一个或多个输出

有穷性:算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且一个步骤在可接受的时间内完成。

确定性:算法的每一个步骤都有确定含义,不会出现义性

可行性:算法的每一步必须是可行的,也就是说,每一步都能够通过执行有限次数完成。

设计算法的要求:

正确性、可读性、健壮性、时间效率高且空间使用率低、简单性

    时间复杂度:

计算机科学中,算法的时间复杂度是一个函数,它定性的描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度函数。时间复杂度常用大O表示,不包括这个函数的低阶项和首项系数。

由此我们可以看出计算时间复杂度的方法:    

1、用常数1取代式中的所有加法常数

2、在修改后的运行次数函数中,只保留最高阶项

3、如果最高阶项系数存在且不是1,则去除与这个项相乘的常数

空间复杂度:

空间复杂度是度量算法所需存储空间的大小(算法的空间复杂度并不是计算实际占用的空间,而是计算整个算法的辅助空间单元的个数)记做S(n)=O(f(n))。简单来说空间复杂度就是程序在执行过程中创建了多少变量。 

下面我们来计算一下时间复杂度和空间复杂度:

nt main()
{
    int i = 0;
    int j = 0;
    int count = 0;

    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
        {

            count++;
        }
    }//执行n*n次

    for (i = 0; i < n; i++)
    {
        count++;
    }//执行n次

    int sum = 10;

    while (sum--)
    {
        count++;
    }//执行10次
    return 0;
}

整个函数会执行n*n+n+10次根据时间复杂度的计算方法可得

O(n*n)

空间复杂度为O(1)

二分法的时间复杂度和空间复杂度:

int Binary_Search(int *dest,int len, int x)
{
    int left = 0;
    int right =len-1;

    while (left <= right)
    {
        int mid = left + (right - left) / 2;
        if (x == *(dest + mid))
        {
            return mid;
        }
        else if (x < *(dest + mid))
        {
            right = mid - 1;

        }
        else if (x > *(dest + mid))
        {
            left = mid + 1;
        }

    }
    return -1;
}

所以时间复杂度为O(log2n)

由于辅助空间是常数级别的所以空间在复杂度为O(1)






内容概要:本文档详细介绍了基于Google Earth Engine (GEE) 构建的阿比让绿地分析仪表盘的设计与实现。首先,定义了研究区域的几何图形并将其可视化。接着,通过云掩膜函数和裁剪操作预处理Sentinel-2遥感影像,筛选出高质量的数据用于后续分析。然后,计算中值图像并提取NDVI(归一化差异植被指数),进而识别绿地及其面积。此外,还实现了多个高级分析功能,如多年变化趋势分析、人口-绿地交叉分析、城市热岛效应分析、生物多样性评估、交通可达性分析、城市扩张分析以及自动生成优化建议等。最后,提供了数据导出、移动端适配和报告生成功能,确保系统的实用性和便捷性。 适合人群:具备一定地理信息系统(GIS)和遥感基础知识的专业人士,如城市规划师、环境科学家、生态学家等。 使用场景及目标:①评估城市绿地分布及其变化趋势;②分析绿地与人口的关系,为城市规划提供依据;③研究城市热岛效应及生物多样性,支持环境保护决策;④评估交通可达性,优化城市交通网络;⑤监测城市扩张情况,辅助土地利用管理。 其他说明:该系统不仅提供了丰富的可视化工具,还集成了多种空间分析方法,能够帮助用户深入理解城市绿地的空间特征及其对环境和社会的影响。同时,系统支持移动端适配,方便随时随地进行分析。用户可以根据实际需求选择不同的分析模块,生成定制化的报告,为城市管理提供科学依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值