简单理解算法

简单理解算法

  • 前言
    • 算法
      • 衡量一个好的算法具备的标准
      • 算法的应用场景
    • 数据结构
      • 数据结构的组成方式

前言

  • hello,宝宝们~来分享我从一本书中理解的算法。《漫画算法》感觉对我这种算法小白比较友好。
  • 看完感觉对算法有了新的理解,计算机学习这么多年,我一直海帕不愿面对的面试问题就是算法。
  • 今天对算法有了一个新的认知。

算法

废话不多说,上概念:

算法【English:algorithm】(必然不能少的英汉互译)
举个栗子:

  • 简单的:算出一组数据中的最大值。
  • 复杂的:找出从一个城市到另一个城市的最优路线。
  • 高效的:1-10000使用等差数列求和。
  • 拙略的:1-10000使用加法求和。

对没错,就是这么简单!哈哈

衡量一个好的算法具备的标准

  • 时间复杂度
  • 空间复杂度

算法的应用场景

算法的应用领域是多种多样的,应用场景也是多种多样的,
举个栗子:

  • 运算 : 数学运算和编程技巧的结合
  • 查找 :百度一下的搜索操作,背后的逻辑
  • 排序 : 排序算法,相信大家对排序并不陌生!
  • 最优策略 :寻找A点到B点的最佳路线,,
  • 面试【好像也蛮重要的哈~】算法可以考察一个程序员对计算机底层知识的了解,另一方面可以考察一下程序员的逻辑思维能力。

数据结构

学计算机的宝宝们一定也不陌生。数据结构和算法不分家。如果说算法是舞台上美丽动人的白天鹅。那数据结构就是这平整宽广的大舞台。
好啦,废话不多说:
数据结构【English:data structure】

  • 数据结构是数据的组织、管理和存储格式。
  • 其使用目的是为了高效的访问和修改数据。

数据结构的组成方式

  • 线性结构
    – 线性结构是最简单的数据结构,包括数组、链表,以及由它们衍生出来的栈、队列、哈希表。

  • – 树是相对复杂的数据结构,其他比较有代表性的是二叉树,有它又衍生出了二叉堆之类的数据结构。

  • – 图是更为复杂的数据结构,因为在图中会呈现出多对多的关联关系。
  • 其他数据结构
    – 上述是几种基本的数据结构,还是有其他千奇百怪的数据结构,他们由基本的数据结构变形而来,用于解决某些特定问题。例如:哈希链表、位图等等。

好啦,今天就到这里吧!文章不易太长,我们循序渐进!一起成长~
本人小菜鸡,欢迎各路大佬畅所欲言!

【预告】:我们下期聊聊【时间复杂度】欢迎大家来品鉴~

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

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

相关文章

H265、VP9、AV1视频编码器性能对比

1、背景介绍 目前在视频编解码器中,H264 已经成为绝对的主流,被大部分设备、浏览器所支持。虽然有更先进的编码器推出,但是受限于推广速度和设备支持成本,一直未能成为主流。 今年公司的目标是持续降本增效,现在将”屠刀“指向了视频业务的存储成本。视频文件存储主要两…

竞赛选题 : 题目:基于深度学习的水果识别 设计 开题 技术

1 前言 Hi,大家好,这里是丹成学长,今天做一个 基于深度学习的水果识别demo 这是一个较为新颖的竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/pos…

ChatGPT等大语言模型为什么没有智能

今天我们来闲聊聊chatGPT,然后带出一些目前神经网络或者更大一些人工智能存在的问题,仅作抛砖引玉。我不管OpenAI用什么方式炒作,Q*也好,AI自我意识也好,董事会内斗也罢;首先它的成绩还是非常出色的&#x…

编程实战:类C语法的编译型脚本解释器(系列)

“脚本”始终是个具有独特魅力的领域,能够随时方便地解决一些问题,但脚本的随意性同时带来别的问题,所以脚本始终属于让人又爱又恨的存在。 很多大型系统都会嵌入一些小型的解释器,用来让用户亲自编写简单的逻辑规则。不幸的是&am…

springCache——jetcache缓存

文章目录 jetcache远程、本地缓存方案jetcache方法注解使用方式 jetcache远程、本地缓存方案 <dependency><groupId>com.alicp.jetcache</groupId><artifactId>jetcache-starter-redis</artifactId><version>2.6.4</version></de…

[c]比较月亮大小

本题的难点就是分情况讨论 #include<stdio.h> int main() {int n;scanf("%d",&n);int arr2[n];int p;for(int m0;m<n-1;m){scanf("%d",&arr2[m]);//输入n个数保存到数组}if(n1)//当输入一个数据时&#xff0c;输入0&#xff0c;可以判断…

如何进行Java项目的构建和部署?

Java项目的构建和部署可以使用一些常用的工具来完成&#xff0c;如Maven、Gradle和Ant等。 Maven构建和部署Java项目&#xff1a; Maven是一个Java项目管理工具&#xff0c;通过在项目的pom.xml文件中声明依赖和插件来管理项目。使用Maven进行Java项目的构建和部署可以按照以下…

Java中实现HTTPS连接的最佳实践

引言 大家好&#xff01;我是小黑。今天咱们来聊聊一个既热门又实用的话题&#xff1a;在Java中如何实现HTTPS连接。现在的网络世界&#xff0c;安全性是大家都非常关注的问题&#xff0c;特别是对于咱们这些程序员来说&#xff0c;更是如此。想想看&#xff0c;如果你的网站或…

【Java 基础】16 泛型

文章目录 什么是泛型&#xff1f;泛型的声明泛型的使用泛型方法通配符和泛型上下界1&#xff09;通配符2&#xff09;泛型上下界 泛型的好处注意事项 泛型提供了一种在编写代码时更好地 支持类型安全的机制。通过泛型&#xff0c;我们可以编写更加 通用、 灵活、 可读性高的…

docker 搭建开发环境,解决deepin依赖问题

本机环境&#xff1a; deepin v23b2 删除docker旧包 sudo apt-get remove docker docker-engine docker.io containerd runc注意卸载docker旧包的时候Images, containers, volumes, 和networks 都保存在 /var/lib/docker 卸载的时候不会自动删除这块数据&#xff0c;如果你先…

Python爬虫完整代码模版——获取网页数据的艺术

Python爬虫完整代码模版——获取网页数据的艺术 在当今数字化世界中&#xff0c;数据是价值的源泉。如何从海量数据中提取所需信息&#xff0c;是每个数据科学家和开发者必须面对的问题。Python爬虫作为一种自动化工具&#xff0c;专门用于从网站上抓取数据。本文将提供一个Py…

Django回顾【三】

目录 一、模板层 1、介绍 2、了解 3、页面静态化 4、模版语法 5、内置过滤器 6、标签 for标签 if 标签 7、模板导入和继承 模板导入 模板继承 一、模板层 1、介绍 模板在浏览器中是运行不了的 ----》因为它有模板语法 ----》浏览器解析不了模板语法 必须在后端渲…

YOLOv7+姿态估计Pose+tensort部署加速

YOLOv7-Pose 实现YOLOv7&#xff1a;可训练的免费套件为实时目标检测设置了最新技术标准 YOLOv7-Pose的姿态估计是基于YOLO-Pose的。关键点标签采用MS COCO 2017数据集。 训练 使用预训练模型yolov7-w6-person.pt进行训练。训练命令如下&#xff1a; python -m torch.distr…

Windows系列:Windows Server 2012 R2 安装VMware Tools的正确姿势(实现物理机和虚拟机文件互传)

Windows Server 2012 R2 安装VMware Tools的正确姿势(实现物理机和虚拟机文件互传) 安装环境安装步骤一. 安装补丁下面进入教程首先打开虚拟机,点击"虚拟机"选项中的"安装VMware Tools"点击确定如果出现下图中的问题,说明虚拟机中缺少更新程序,我们需…

企业真题(泛型、数据结构与集合源码)

二、企业真题 1. Java 的泛型是什么&#xff1f;有什么好处和优点&#xff1f;JDK 不同版本的泛型有什么区别&#xff1f;&#xff08;软*动力&#xff09; 泛型&#xff0c;是程序中出现的不确定的类型。 以集合来举例&#xff1a;把一个集合中的内容限制为一个特定的数据类…

Redis 安装

文章目录 第1关&#xff1a;Redis 安装第2关&#xff1a; Redis 启动 第1关&#xff1a;Redis 安装 编程要求 在右侧命令行中在线安装 Redis 服务器软件和客户端软件&#xff1a; 在线安装 Redis&#xff08;实验环境使用的是 Ubuntu 系统&#xff09;&#xff1b; 测试说明…

iptables——建立linux安全体系

目录 一. 安全技术类型 二. linux防火墙 1. 按保护范围划分&#xff1a; 2. 按实现方式划分&#xff1a; 3. 按网络协议划分&#xff1a; 4. 防火墙原理 三. 防火墙工具——iptables 1. netfilter 中五个勾子函数和报文流向 数据包传输过程&#xff1a; ① .五表四链…

OOM了?物理内存不够了?试试这个方法来提升内存容量,不花钱的

通过增加虚拟内存来提高内存使用 本文解决的实际问题&#xff1a; 当我们物理内存小的时候&#xff0c;会出现OOM&#xff0c;然后服务自动死掉的情况。因为物理内存大小是固定的&#xff0c;有没有其他好的办法来解决呢&#xff1f;这里我们可以适当调整Linux的虚拟内存来协作…

互联网产品经理常用的ChatGPT通用提示词模板

产品规划和设计&#xff1a;请帮助我规划和设计一款互联网产品&#xff0c;包括市场调研、用户需求分析、产品功能设计、产品原型设计等方面的内容&#xff0c;以便我能够更好地满足用户需求并开发出优秀的产品。 产品开发和迭代&#xff1a;请帮助我进行互联网产品的开发和迭…

如何在 vue 项目中创建 svg 组件

在Vue项目中&#xff0c;SVG是一种非常常见的图像形式。与传统的矢量图像不同&#xff0c;SVG可以设置可缩放且清晰度高的图像形式。Vue使得使用SVG组件非常容易&#xff0c;本文将介绍如何在Vue项目中创建SVG组件。 步骤1&#xff1a;创建SVG文件 要创建SVG组件&#xff0c;…