C语言数据结构2 1.2 算法

news2024/11/19 6:18:51

算法的基本概念

算法的定义

算法是对特定问题求解步骤的一种描述,它是指定的有限序列,其中的每条指令表示一个或多个操作。

例、

算法的特性 (5个)

1.有穷性

一个算法总在执行有穷步之后结束,且每一步都可以在有穷时间内完成。

注:算法必须有穷,程序可以无穷。

2.确定性

算法中每条指令必须有确切的含义,对于相同的输入只能得出相同的输出。

3.可行性

算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。 

4.输入

一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。

5.输出

一个算法有一个或多个输出,这些输出是与输入有着某种特定关系的量。

“好”算法的特质

1.正确性

算法应该能够正确地解决求解问题。

2.可读性

算法应具有良好的可读性,以帮助人们理解。

3.健壮性

输入非法数据时,算法能够适当的做出反应或进行处理,而不会产生莫名其妙的输出结果。

4.高效率与低存储量需求

高效率:花的时间少,时间复杂度低。

低存储量需求:不菲内存,空间复杂度低。

回顾总结

算法的时间复杂度

时间复杂度——算法时间开销

事后统计法:

算法时间复杂度

 T(n)与n的关系

表白 爱你n遍

算法1 逐步递增型爱你

算法2 嵌套循环型爱你

算法3 指数递增型爱你

算法4 搜索数字型爱你

最好与最坏时间复杂度

思考:

问题1

问题2

去掉低阶部分 只保留最高阶部分 忽略常数项

a.加法规则:多项相加,只保留最高项

b.乘法规则:多项相乘,都保留

算法常见时间复杂度顺序:常对幂指阶

知识回顾

算法的空间复杂度

时间复杂度与空间复杂度对比

时间复杂度:时间开销与问题规模n之间的关系

空间复杂度:空间开销(内存开销)与问题规模n之间的关系

程序运行时的内存需求:

时间复杂度T(n) 空间复杂度S(n)

只需关注存储空间大小与问题规模相关的变量

例1

 例2
函数递归调用带来的内存开销

知识回顾

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

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

相关文章

医疗器械标准目录汇编2022版共178页(文中附下载链接!)

为便于更好地应用医疗器械标准,国家药监局医疗器械标准管理中心组织对现行1851项医疗器械国家和行业标准按技术领域,编排形成《医疗器械标准目录汇编(2022版)》 该目录汇编分为通用技术领域和专业技术领域两大类,通用…

计算机网络 第三章数据链路层

文章目录 1、数据链路层概述 1、数据链路层概述

C语言:选择+编程(每日一练Day9)

目录 选择题: 题一: 题二: 题三: 题四: 题五: 编程题: 题一:自除数 思路一: 题二:除自身以外数组的乘积 思路二: 本人实力有限可能对…

2.2.3 vim操作合集

1 vim VIM 是 Linux 系统上一款文本编辑器,学习 VIM 最好的文档,应该是阅读学习 VIM 的帮助文档,可以使用本地的帮助文件(vim--->:help),或者使用在线帮助文档。同时针对vim的使用,相应的相书籍也很多,如下 2 vim操作模式 命令模式:默认模式,该模式下可以移动光标…

ChatGPT付费创作系统V2.3.4独立版 +WEB端+ H5端 + 小程序最新前端

人类小徐提供的GPT付费体验系统最新版系统是一款基于ThinkPHP框架开发的AI问答小程序,是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。当前全民热议ChatGPT,流量超级大,引流不要太简单!一键下单即可拥有自己的GPT&#xff0…

LVGL_基础控件checkbox

LVGL_基础控件checkbox 1、创建checkbox /* 创建一个 checkbox 部件(对象) */ lv_obj_t * cb lv_checkbox_create(lv_scr_act()); // 创建一个 switch 部件(对象),他的父对象是活动屏幕对象 lv_checkbox_set_text(cb, "100ASK LVGL Tutorial" LV_SYMBOL_PLAY);…

qml保姆级教程四:按钮组件

💂 个人主页:pp不会算法v 🤟 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 QML系列教程 QML教程一:布局组件 文章目录 AbstractButton…

汽车类、TPS7B8225QDGNRQ1、TPS7B8233EPWPRQ1、TPS7B8601QKVURQ1 40V、低压降 (LDO) 线性稳压器

一、TPS7B82-Q1 汽车类 300mA、高压、超低 IQ 低压降稳压器 (介绍)在汽车电池连接应用中,低静态电流 (IQ) 对于省电和延长电池寿命而言至关重要。对于始终开启的系统,必须要实现超低 IQ。 TPS7B82-Q1 是一款旨在在 3V 至 40V&…

Java毕业设计 SpringBoot 网上体育商城系统 商城系统

Java毕业设计 SpringBoot 网上体育商城系统 商城系统 SpringBoot 网上体育商城系统 功能介绍 首页 图片轮播 搜索 用户登录注册 商品信息 商品分类 商品详情 收藏 评论 添加到购物车 立即购买 购物车 确认下单 公告信息 留言反馈 个人中心 修改个人信息 我的订单 退款 我的地…

地图资源下载工具2.0

一、简介 地图资源工具是一款用于GIS数据下载的工具,用于GIS数据矢量、遥感数据的查询、下载及浏览。下载数据包括:哨兵(Sentinel)系列,LANDSAT系列,MODIS系列、ASTER系列、GOES系列、OPENSTREETMAP数据…

传输层协议—TCP协议

传输层协议—TCP协议 文章目录 传输层协议—TCP协议TCP协议段格式四位首部长度TCP协议如何根据目的端口号将数据传输给指定进程?32位序列号和32位确认序列号可靠性问题 TCP报头标志位16位紧急指针16位检验和确认应答机制超时重传机制再谈三次握手四次挥手 连接管理机…

XC5013 马达驱动和充电集成一体的控制芯片 一档输出芯片

XC5013 是一款应用于马达驱动或 LED 驱动的控制芯片,集成了锂电池充电管理系统,设定一档高电平输 出,并带有对不同状态的 LED 指示功能。 XC5013 集成了涓流充电、恒流充电和恒压充电全过程的充电方式,浮充电压精度在全温度范…

GEE16: 区域日均降水量计算

Precipitation 1. 区域日均降水量计算2. 降水时间序列3. 降水数据年度时间序列对比分析 1. 区域日均降水量计算 今天分析一个计算区域日均降水量的方法: 数据信息:   Climate Hazards Group InfraRed Precipitation with Station data (CHIRPS) is a…

国庆假期作业6

一、ARM的工作模式 1、非特权模式 user模式:非特权模式,大部分任务执行在这种模式 2、特权模式 异常模式: FIQ : 当一个快速(fast) 中断产生时将会进入这种模式 IRQ : 当一个通用(normal) 中断产生时将会进入这种模式…

物联网系统中物模型定义的简要说明

物模型由若干条“参数”组成,参数按描述的功能类型不同,又分为属性、方法和事件。 标准参数 为了实现设备功能的统一理解。 说的直白一些的理解,可以这样去理解: 属性,就是定义的由设备端规律性的定期上报的数据。 事件,就是定…

【在凸多边形的图像中查找顶点】估计具有已知顶点数的像素化凸多边形角点研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

2.2.3.1vim + ctags + cscope + taglist

在window下,我们一般用Source Insight来查看代码而在linux下,使用vim来查看代码,vim是一个简单的文本浏览/编辑器,它可以通过插件的形式,搭建一个完全的类Source Insight环境,通过快捷键的形式,快速查看、定位变量/函数,本文就是基于vim,通过ctags+cscope+taglist+Ner…

剑指offer——JZ77 按之字形顺序打印二叉树 解题思路与具体代码【C++】

一、题目描述与要求 按之字形顺序打印二叉树_牛客题霸_牛客网 (nowcoder.com) 题目描述 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 数据范围&#x…

【计算机视觉|人脸建模】学习从4D扫描中获取的面部形状和表情的模型

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题:Learning a model of facial shape and expression from 4D scans 链接:Learning a model of facial shape and expression from 4D scans | ACM Transactions on Graphics Pe…

【网络】抓包工具Wireshark下载安装和基本使用教程

🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的帮助&#x1…