【408篇】C语言笔记-第九章(数据结构概述)

news2024/11/26 8:56:38

文章目录

    • 第一节:逻辑结构与存储结构
      • 1. 逻辑结构
      • 2. 存储结构
        • 1. 顺序存储
        • 2. 链式存储
        • 3. 顺序存储与链式存储分析
    • 第二节:算法的评价(时间复杂度与空间复杂度)
      • 1. 算法定义
      • 2. 时间复杂度
      • 3. 空间复杂度

第一节:逻辑结构与存储结构

两者对比

1. 逻辑结构

2. 存储结构

说明:存储结构有四种,但是最终的存储方式只有顺序存储和链式存储两种。

1. 顺序存储

int array[6]={1,2,3,4,5,6};  // 定义数组并初始化
printf{"%d\n",array[3]};   // 随机访问第4个元素

说明:地址相当于指针取值。下标相当于随机访问。

2. 链式存储

说明:前一个节点存放下一节点的指针。

// 仅做示例,无法运行
Typdef struct Lnode{
    ElemType data;
    struct Lnode *next;
}Lnode,*LinkList;
Lnode *L;
L=(LinkList)malloc(sizeof(Lnode));
A->next=B;B->next=C;

3. 顺序存储与链式存储分析

第二节:算法的评价(时间复杂度与空间复杂度)

1. 算法定义

算法定义是对特定问题求解步骤的描述。

一个基本算法包括:有穷、确定、可行、输入、输出。

2. 时间复杂度

时间复杂度是指算法中所有语句的频度(执行次数)之和。记为:

T(n)=O(f(n))

其中,n是问题的规模;f(n)是问题规模n的某个函数。

随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同(正相关)

常见的时间复杂度

最高阶数越小,说明算法的时间性能越好。

例题:

时间复杂度计算忽略高阶项系数和低阶项

思考:如果一个算法的执行次数为3n^3+5n,那么该算法的时间复杂度是多少?

答案是O(n3),因为忽略了高阶项系数3,和低阶项5n,剩余n3。

3. 空间复杂度

空间复杂度S(n)指算法运行过程中所使用的辅助空间的大小。记为:

S(n)=O(f(n))

  • 除了需要存储算法本身的指令、常数、变量和输入数据外,还需要存储对数据操作的存储单元。

  • 若输入数据所占空间只取决于问题本身,和算法无关,这样只需分析该算法在实现时所需的辅助单元即可。

  • 算法原地工作是指算法所需的辅助空间是常量,即O(1)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/50367.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS7安装GmSSL过程记录

近期因为项目需要上区块链,在集成过程中证书选择了国密SM2,于是开启了入坑之旅,由于整个过程反复多次,我的记录也可能存在遗漏,只能尽力记录,这也是我为什么熬夜也要写下这篇记录! 环境说明Virt…

[附源码]Python计算机毕业设计Django的玉石交易系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

【Pandas数据处理100例】(九十三):Pandas使用all()函数判断DataFrame中的元素是否都为True

前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPandas版本:1.3.5N…

数据库事务、连接与java线程之间的关系

最近在处理事务和多线程时,比较困扰数据库事务,数据库连接以及java线程之间的关系。 问题1:事务和连接的关系? 回答:对于数据库事务来说先有一个连接,才能有事务,一个连接里可以有一次或多次事…

[附源码]计算机毕业设计SpringBoot计算机相关专业考研资料管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

二叉树的遍历与构建问题

目录 一、二叉树遍历 二、从前序与中序遍历序列构造二叉树 三、从中序遍历与后序遍历序列构造二叉树 一、二叉树遍历 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的…

卡塔尔世界杯壁纸已上线,下载的壁纸清晰度不够?教你修复清晰

当我们无法走入现场感受这场体育盛宴,就用一张张世界杯壁纸回味世界杯的动人瞬间吧,在家云看球,换上卡塔尔世界杯壁纸,用上表情包一样可以过把瘾,一起看看如何获得卡塔尔世界杯的壁纸和表情包吧! 如何获得…

基于PLC的矿泉水自动瓶装控制系统设计

目 录 1 绪论 1 1.1研究背景及意义 1 1.2研究现状 2 1.2.1 可编程序逻辑控制器 2 1.2.2 我国自动瓶装存在的问题 2 1.3研究主要内容 3 2 矿泉水自动瓶装总体设计 5 2.1任务的分析 5 2.2硬件方案设计 5 2.3软件方案设计 6 2.3.1经验设计法 6 2.3.2逻辑设计法 6 3 元件器件选择 8…

[附源码]SSM计算机毕业设计学术文献分享网站JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Spring IoC依赖注入-6

1. 依赖注入的模式和模型: Spring 提供了哪些依赖注入的模式和类型? 手动模式 - 配置或者编程的方式,提前安排注入规则 XML资源配置元信息Java 注解配置元信息API 配置元信息 自动模式 - 实现方提供依赖自动关联的方式,按照内建的注入规则 Autowiring …

拓扑排序算法

背景 拓扑排序是啥意思? 拓扑排序是指: 将有向无环图(DAG)展开为一维的执行序列。DAG顾名思义就是有方向的图,下面这张图就简单说明了啥是有向无环图。一般人可能用到这个算法的情况不多,但是刷leetcode的课程表问题肯定遇到过,其…

ShardingJdbcⅡ

序言 在前文的基础上继续梳理一下分片的相关信息.基于shardingsphere-sharding-api:jar:5.2.1的源码,感觉ShardingJdbc的版本变动频繁且比较大cuiyaonan2000163.com 切入口是如下的内容,吐槽下官网的API文档不太够能把事情说清楚: 分片算法 从上面的自定义分片的可选类型我们…

我有两个列表,现在需要找出两个列表中的不同元素,怎么做?

点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤秦时明月汉时关,万里长征人未还。大家好,我是皮皮。一、前言前几天在帮助粉丝解决问题的时候,遇到一个简单的小需求&#…

[附源码]Python计算机毕业设计Django的物品交换平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

【Pandas数据处理100例】(八十五):Pandas将DataFrame数据转化成字典数据

前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPandas版本:1.3.5N…

git push出现git@github.com: Permission denied (publickey) 解决办法

故障现象 ➜ LKExtentionKit git:(master) ✗ git push --set-upstream origin master gitgithub.com: Permission denied (publickey). 错误:无法读取远程仓库。请确认您有正确的访问权限并且仓库存在。 解决办法 第1步,验证邮箱与GitHub注册时输入的是否一致 …

计算机网络(详解)

文章目录一,计算机网络⑴ 局域网(LAN)1) 环状拓扑结构2) 星型拓扑结构3) 总线拓扑结构⑵ 城域网(MAN)⑶ 广域网(WAN)二,互联网⑴ 互联网是一种计算机网络⑵ 互联网的工作模式⑶ 互联…

Leetcode 907.子数组的最小值之和(中等)

一、题目 1、题目描述 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。 由于答案可能很大,因此 返回答案模 10^9 7 。 示例1: 输入:arr [3,1,2,4] 输…

【Paper】2022_离散时间多智能体系统编队-包围控制研究_李博凡

离散时间多智能体系统编队-包围控制研究_李博凡 文章目录第四章 基于间歇控制的离散时间多智能体系统编队-包围控制4.1 引言4.2 基于状态反馈的离散时间间歇多智能体系统编队-包围控制4.2.1 模型描述4.2.2 稳定性分析4.3 基于观测器的离散时间间歇多智能体系统编队-包围控制4.3…

2022最全Hbuilder打包成苹果IOS-App的详解

本文相关主要记录一下使用Hbuilder打包成苹果IOS-App的详细步骤。 介绍一下个人开发者账号: 再说下什么是免费的苹果开发者账号,就是你没交688年费的就是免费账号,如果你想变成付费开发者账号,提交申请付费就行,账号都…