算法,其实就是办法

随着人工智能(AI)的火热发展,它背后的技术——「算法」也慢慢走近普通人的生活,类似于智能客服之类的应用也会越来越多。不靠编程技术挣钱吃饭的童鞋可以不懂什么是算法,但从事软件开发工作的小伙伴就有必要知道一些了。

在搞定了计算机编程语言之后,科学家们很快发现,由于需要计算机处理的任务越来越多,因此不可避免地,要搜集和存放的资料、结果也越来越多,对这些内容的管理就变得愈发困难。怎么更好地处理它们,以便于查找和使用,就成了无法回避的问题。这种解决查找、存放(包括排序)问题的方式,在计算中,就叫做「算法」。

和算法相伴相生的另一个计算机学科分支,叫数据结构。数据结构是关于数据的组织形式,例如大家一起排队做核酸,就是一种最典型的数据结构(这叫先进先出队列,FIFO,First In First Out),就像下面这样:

算法,其实就是办法

而算法(这里可以理解为让大家快点做完核酸),研究的就是怎么让过程更有效率,怎么能够更快更好地完成任务。

还是拿做核酸来举例,此时人越来越多,太阳又大,等在后面的人要好久才能轮到自己,所以很多人开始不满了。为了满足大家的要求,社区只好又安排了几位护士一起做核酸,这样一下子就加快了做核酸的速度,就像这样:

算法,其实就是办法

原来要30分钟才能做完的,现在只要十分钟就能全部做完了。这种类似多队列的例子,还有很多,例如地铁、高铁站进出口的闸机(不是炸鸡腿的炸鸡)就是典型的多队列:

算法,其实就是办法

这种用多个队列解决单个队列排队问题的办法,在算法中有一种专门的名称,叫「分治」。它能大大提高效率,属于典型的「以空间换时间」的问题解决方式。

用计算机算法来解决实际生活问题的例子还有很多很多很多很多很多很多,随便说几个:用计算机切割纸板制造纸箱的算法、用计算机来调度整个武昌机务段所有高铁车辆的算法、用计算机解决大家到12306买票的算法、用计算机解决高德导航路线问题的算法……可以说,没有这些算法(办法),我们的生活将会非常不方便。

最后,为了让大家分清各种算法,奉上思维导图一张(个人总结,如有疏漏,欢迎指出):

算法,其实就是办法

Original: https://www.cnblogs.com/xiangwang1111/p/16717840.html
Author: 湘王
Title: 算法,其实就是办法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585022/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 虚拟存储技术与交换覆盖技术的区别

    覆盖技术 将同一个进程划分为多层,每层共享一块内存。对象是同一进程。 交换技术 当内存紧张时,将不常用的进程放入外存。对象是进程。 虚拟存储技术 当内存紧张时,将页(段)换入换出内…

    Java 2023年6月9日
    075
  • 内部类调用外部类的this方法

    posted @2022-08-29 20:05 司徒小夜 阅读(3 ) 评论() 编辑 Original: https://www.cnblogs.com/stblack/p/1…

    Java 2023年6月14日
    094
  • 为什么构造器私有之后不能创建对象了?

    在Java中,我们可以构造方法,而构造方法又分为有参和无参构造方法: /* 无参数的构造方法,如果类中无构造方法,则默认就有一个无参的构造方法,如果类中有带参的构造方法,则默 * …

    Java 2023年6月8日
    066
  • LOVE×EVOLUTION 汉化补丁

    【遊戲名稱/Name】:LOVE×EVOLUTION【遊戲廠商/Company】:evee【發售日期/Sale date】:2009/08/18 介绍: 这个好像就是所谓GALGA…

    Java 2023年5月29日
    0109
  • SpringBoot接口-API接口有哪些不安全的因素?如何对接口进行签名?

    在以SpringBoot开发后台API接口时,会存在哪些接口不安全的因素呢?通常如何去解决的呢?本文主要介绍API 接口有不安全的因素以及 常见的保证接口安全的方式,重点 实践如何…

    Java 2023年6月6日
    0139
  • 企业级微服务API网关Fizz-常用插件介绍

    前言 社区贡献的插件在 https://github.com/orgs/wehotel/repositories?type=all 下,一般以 fizz-plugin- 或 fiz…

    Java 2023年6月9日
    085
  • 读经典【1】重构:改善既有代码的设计

    五星好评。很实用。 最近读了重构原版书,同时也在使用其中的一些技巧来改善工作中的项目,自己改完代码会有成就感。 这本书改变了我原有的思想钢印:代码能成功跑起来就不要去动它。实际上,…

    Java 2023年6月16日
    084
  • 分布式学习基础知识

    新文章 分布式学习基础知识 网络通讯,网络是分布式的基础,对分布式的理解建立在对网络的理解上,包括: OSI模型的7层 TCP/IP,DNS,NAT HTTP,SPDY/HTTP2…

    Java 2023年6月7日
    074
  • MyBatis 配置多数据源

    Java 2023年5月30日
    090
  • 深入浅出分析 HashMap

    作者:炸鸡可乐原文出处:www.pzblog.cn 一、摘要 在集合系列的第一章,咱们了解到,Map的实现类有HashMap、LinkedHashMap、TreeMap、Ident…

    Java 2023年6月9日
    092
  • rabbitmq常见问题–持续补充中

    1.消费者不能绑定消费者 问题原因1:消费者绑定的exchange或者rkey绑定错误 下游绑定数据,如果rkey不对,就会导致失败 解决办法:上游与下游对齐 rkey,与exch…

    Java 2023年5月30日
    080
  • 你见过哪些目瞪口呆的 Java 代码?

    自从毕业后,今年已经是我工作的第 8 个年头了,我甚至都快忘记了到底是哪年毕业的。 从出来,本人一直在做 Java 相关的工作,现在终于有时间坐下来,写一篇关于 Java 写法的一…

    Java 2023年5月29日
    085
  • Java内存问题分析与定位

    简介 JNI方法申请的native 内存,通常是在JDK库里;本地 C++ 方法直接通过 malloc申请的内存,不受JVM管控。 堆内内存: 指Java堆,GC算法管理的内存区域…

    Java 2023年5月29日
    095
  • spring中特殊赋值处理

    字面量赋值:之间调用value赋值就行 赋值null: 特殊符号赋值: 1. Original: https://www.cnblogs.com/bieyinan/p/166971…

    Java 2023年6月16日
    076
  • 四大函数式接口

    四大函数式接口 Fuction 函数型接口,有一个输入参数,有一个输出参数 函数型接口:输入一个参数,输出输入的参数 //Function 函数型接口 public class D…

    Java 2023年6月5日
    077
  • 理解Android Binder机制(3/3):Java层

    在AOSP源码树中的路径 // Binder Framework JNI /frameworks/base/core/jni/android_util_Binder.h /fram…

    Java 2023年5月29日
    0100
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球