当前位置: 首页 > news >正文

【算法】初识算法

尽量不说废话

算法

    • 一、数据结构
    • 二、排序算法
    • 三、检索算法
    • 四、字符算类型算法
    • 五、递归算法
    • 六、贪心算法
    • 七、动态规划
    • 八、归一化算法
    • 后记

我们这里指的算法,是作为程序员在计算机编程时运用到的算法。
算法是一个庞大的体系,主要包括以下内容:

一、数据结构

算法中不论采用什么经典算法,都避不开数据。
数据有多种类型,而如何表达数据以便满足不同需求是一个很必要的问题。比如如何对厂房中的货物进行统计、不同等级的产品进行管理等。
我们通常见到的比如堆栈、队列、树、图等都是流行且基本的数据结构。他们有各自的使用规则、比如队列:先进先出、堆栈:先进后出等等。

二、排序算法

有了数据,那么整理数据是必不可少的。排序是对同类型数据的排列,比如从大到小、在实际应用中会经常见到。
常见的冒泡排序,快速排序、插入排序、选择排序等。

三、检索算法

对于我们整理好的数据,我们如何进行后期使用,如何快速拿到我们想要的数据。
这时候检索算法就是我们所需要的了。
比如线性查找、非线性查找等。
往往在大型应用中需要考虑时间复杂度和空间复杂度。因为在检索过程中总有快慢之分,存储空间大小之别。在其中寻求最优解是我们需要考虑的问题。

四、字符算类型算法

字符是一类特殊的数据,对它相关的算法学习应该着重考虑。这个我们之后再说。

五、递归算法

递归是一个神奇的东西,我们在大学的c语言课中都有学过。
它能够将复杂的问题简化,使得每个子问题都类似于原始问题,但是规模更小。通过不断地缩小问题规模,最终达到可以直接解决的简单情况,然后通过组合这些简单情况的解决方案来构建原始问题的解答。

用于数据结构(如树的遍历)、排序算法(如快速排序和归并排序)、搜索算法(如深度优先搜索和广度优先搜索)等。递归算法的优点是代码通常比较简洁、易于理解,但缺点是可能会导致大量的函数调用,从而增加内存消耗和计算成本。在某些情况下,递归算法可以通过迭代(使用循环结构)的方式进行优化,以减少资源消耗。

六、贪心算法

是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法策略。这种算法在解决问题时通常不考虑所有可能的解决方案,而是通过每一步的局部最优选择来快速达到一个解决方案

贪心算法的特点在于它的简单性和高效性。在某些问题中,贪心算法可以迅速得到一个最优解,尤其是在那些具有最优子结构的问题中,即一个问题的最优解包含其子问题的最优解。然而,贪心算法并不总是能得到全局最优解,它适用于那些具有贪心选择性质的问题,即局部最优选择能够导向全局最优解的情况。

七、动态规划

与贪心算法同等级,以时间或地域划分阶段的过程的最优解。

八、归一化算法

用于大数据,是一个代表性算法,当然大数据还有其他算法值得去学习。

MapReduce 4:
MapReduce是一种编程模型,用于大规模数据集的并行处理。它由两个主要步骤组成:Map(映射)步骤处理数据,Reduce(归约)步骤汇总结果。

Hadoop 1:
Hadoop是一个开源框架,用于存储和处理大数据集群上的大量数据。它使用MapReduce进行数据处理,并提供了一个分布式文件系统(HDFS)。

Spark 2: Spark是一个快速的大数据处理框架,支持批处理、交互式查询、流处理和机器学习。

时间亚线性算法 1:
这类算法能够在处理时间远小于数据规模的情况下,对数据进行有效的分析和查询。 空间亚线性算法 1: 专注于在有限的内存空间内高效处理大量数据。

外存算法 1: 这些算法设计用于在外部存储(如硬盘)上处理数据,因为数据集太大而无法完全加载到内存中。

众包算法 1:
通过将任务分发给广泛的网络用户来解决问题,适用于处理需要人类直觉或判断的大数据问题。

后记

12点了,先到这吧,后面会写一些算法的实例出来,尽量通俗易懂,去繁留简。
(最后求个赞,感谢!)

相关文章:

【算法】初识算法

尽量不说废话 算法 一、数据结构二、排序算法三、检索算法四、字符算类型算法五、递归算法六、贪心算法七、动态规划八、归一化算法后记 我们这里指的算法,是作为程序员在计算机编程时运用到的算法。 算法是一个庞大的体系,主要包括以下内容:…...

HomeBrew 安装与应用

目录 前言一、安装 HomeBrew二、使用 HomeBrew1、使用 brew 查看已安装的软件包2、使用 brew 安装软件包3、使用 brew 升级已安装的软件包4、brew 还有哪些命令呢? 前言 在 macOS(或Linux)系统里,默认是没有软件包的管理器的&…...

JS详解-设计模式

工厂模式: 单例模式: // 1、定义一个类class SingleTon{// 2、添加私有静态属性static #instance// 3、添加静态方法static getInstance(){// 4、判断实例是否存在if(!this.#instance){// 5、实例不存在,创建实例this.#instance new Single…...

探寻马来西亚服务器托管的优势与魅力

随着全球跨境业务的不断增加,境外服务器成为越来越受欢迎的选择。在这其中,马来西亚服务器备受关注,其机房通常位于马来西亚首都吉隆坡。对于客户群体主要分布在东南亚、澳大利亚和新西兰等地区的用户来说,马来西亚服务器是一个理…...

虚幻UE5数字孪生蓝图开发教程

一、背景 这几年,智慧城市/智慧交通/智慧水利等飞速发展,骑士特意为大家做了一个这块的学习路线。 二、这是学习大纲 1.给虚幻UE5初学者准备的智慧城市/数字孪生蓝图开发教程 https://www.bilibili.com/video/BV1894y1u78G 2.UE5数字孪生蓝图开发教学…...

七、Mybatis-缓存

文章目录 缓存一级缓存二级缓存1.概念2.二级缓存开启的条件:3.使二级缓存失效的情况:4.在mapper配置文件中添加的cache标签可以设置一些属性:5.MyBatis缓存查询的顺序 缓存 一级缓存 级别为sqlSession,Mybatis默认开启一级缓存。 使一级缓存失效的四种…...

数据结构(六)——图的应用

6.4 图的应用 6.4.1 最小生成树 对于⼀个带权连通⽆向图G (V, E),⽣成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。设R为G的所有⽣成树的集合,若T为R中边的权值之和最小的生成树,则T称为G的…...

java自动化测试学习-03-06java基础之运算符

运算符 算术运算符 运算符含义举例加法,运算符两侧的值相加ab等于10-减法,运算符左侧减右侧的值a-b等于6*乘法,运算符左侧的值乘以右侧的值a*b等于16/除法,运算符左侧的值除以右侧的值a/b等于4%取余,运算符左侧的值除…...

【VASP学习】在Ubuntu系统安装vasp.5.4.4的全过程(包括VASP官方学习资料、安装过程中相关编辑器的配置、VASP的编译及VASP的测试)

在Ubuntu系统安装vasp.5.4.4的全过程 VASP的简介与相关学习资料安装前的准备工作及说明安装过程intel编译器的安装VASP的编译VASP的测试 参考来源 VASP的简介与相关学习资料 VASP(Vienna Ab initio Simulation Package)是基于第一性原理对原子尺度的材料进行模拟计算的软件。比…...

PyTorch|Dataset与DataLoader使用、构建自定义数据集

文章目录 一、Dataset与DataLoader二、自定义Dataset类(一)\_\_init\_\_函数(二)\_\_len\_\_函数(三)\_\_getitem\_\函数(四)全部代码 三、将单个样本组成minibatch(Data…...

4.6(信息差)

🌍 山西500千伏及以上输电线路工程首次采用无人机AI自主验收 🌋 中国与泰国将开展国际月球科研站等航天合作 ✨ 网页版微软 PowerPoint 新特性:可直接修剪视频 🍎 特斯拉开始在德国超级工厂生产出口到印度的右舵车 1.马斯克&…...

关于C#操作SQLite数据库的一些函数封装

主要功能:增删改查、自定义SQL执行、批量执行(事务)、防SQL注入、异常处理 1.NuGet中安装System.Data.SQLite 2.SQLiteHelper的封装: using System; using System.Collections.Generic; using System.Data.SQLite; using System.…...

LeetCode-79. 单词搜索【数组 字符串 回溯 矩阵】

LeetCode-79. 单词搜索【数组 字符串 回溯 矩阵】 题目描述:解题思路一:回溯 回溯三部曲。这里比较关键的是给board做标记,防止之后搜索时重复访问。解题思路二:回溯算法 dfs,直接看代码,很容易理解。visited哈希,防止…...

游戏引擎之高级动画技术

一、动画混合 当我们拥有各类动画素材(clips)时,要将它们融合起来成为一套完整的动画。 最经典的例子就是从走的动画自然的过渡到跑的动画。 1.1 线性插值 不同于上节课的LERP(同一个clip内不同pose之间)&#xff…...

Oracle 数据库中的全文搜索

Oracle 数据库中的全文搜索 0. 引言1. 整体流程2. 创建索引2-1. 创建一个简单的表2-2. 创建文本索引2-3. 查看创建的基础表 3. 运行查询3-1. 运行文本查询3-2. CONTAINS 运算符3-3. 混合查询3-4. OR 查询3-5. 通配符3-6. 短语搜索3-7. 模糊搜索(Fuzzy searches&…...

代码随想录阅读笔记-二叉树【二叉搜索树中的众数】

题目 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的…...

AcWing-游戏

1388. 游戏 - AcWing题库 所需知识:博弈论,区间dp 由于双方都采取最优的策略来取数字,所以结果为确定的,有可能会有多个不同的过程,但是我们只需要关注最终结果就行了。 方法一: 定义dp[i][j] 表示区间…...

Mybatis——一对一映射

一对一映射 预置条件 在某网络购物系统中,一个用户只能拥有一个购物车,用户与购物车的关系可以设计为一对一关系 数据库表结构(唯一外键关联) 创建两个实体类和映射接口 package org.example.demo;import lombok.Data;import …...

Web 安全之 SSL 剥离攻击详解

目录 SSL/TLS简介 SSL 剥离攻击原理 SSL 剥离攻击的影响 SSL 剥离攻击的防范措施 小结 SSL 剥离攻击(SSL Stripping Attack)是一种针对安全套接层(SSL)或传输层安全性(TLS)协议的攻击手段,…...

数据结构——顺序表(C语言)

目录 一、顺序表概念 二、顺序表分类 1.静态顺序表 2.动态顺序表 三、顺序表的实现 1.顺序表的结构体定义 2. 顺序表初始化 3.顺序表销毁 4.顺序表的检验 5.顺序表打印 6.顺序表扩容 7.顺序表尾插与头插 8.尾删与头删 9.在pos处插入数据 10.在pos处删除数据 11.查找数据 …...

利用Idea实现Ajax登录(maven工程)

一、新建一个maven工程(不会建的小伙伴可以参考Idea引入maven工程依赖(保姆级)-CSDN博客),工程目录如图 ​​​​​​​ js文件可以上up网盘提取 链接:https://pan.baidu.com/s/1yOFtiZBWGJY64fa2tM9CYg?pwd5555 提取码&…...

环信IM集成教程——Web端UIKit快速集成与消息发送

写在前面: 千呼万唤始出来,环信Web端终于出UIKit了!🎉🎉🎉 文档地址:https://doc.easemob.com/uikit/chatuikit/web/chatuikit_overview.html 环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开…...

Anaconda如何切换国内镜像源

一、anaconda如何切换阿里镜像源 在Anaconda中切换到阿里云镜像源可以通过以下步骤进行: 1、打开终端(Windows)或者命令行界面(macOS/Linux)。 2、执行以下命令来配置阿里云镜像源: conda config --add…...

Android 14.0 添加自定义服务,并生成jar给第三方app调用

1.概述 在14.0系统ROM产品定制化开发中,由于需要新增加自定义的功能,所以要增加自定义服务,而app上层通过调用自定义服务,来调用相应的功能,所以系统需要先生成jar,然后生成jar 给上层app调用,接下来就来分析实现的步骤,然后来实现相关的功能 从而来实现所需要的功能 …...

解决沁恒ch592单片机在tmos中使用USB总线时,接入USB Hub无法枚举频繁Reset的问题

开发产品时采用了沁恒ch592,做USB开发时遇到了一个奇葩的无法枚举问题。 典型症状 使用USB线直连电脑时没有问题,可以正常使用。 如果接入某些特定方案的USB Hub(例如GL3510、GL3520),可能会出现以下2种情况&#xf…...

nvm保姆级安装使用教程

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 开发环境篇 ✨特色专栏: M…...

大语言模型LLM《提示词工程指南》学习笔记02

文章目录 大语言模型LLM《提示词工程指南》学习笔记02设计提示时需要记住的一些技巧零样本提示少样本提示链式思考(CoT)提示自我一致性生成知识提示 大语言模型LLM《提示词工程指南》学习笔记02 设计提示时需要记住的一些技巧 指令 您可以使用命令来指…...

【realme x2手机解锁BootLoader(简称BL)】

realme手机解锁常识 https://www.realme.com/cn/support/kw/doc/2031665 realme手机解锁支持型号 https://www.realmebbs.com/post-details/1275426081138028544 realme x2手机解锁实践 参考:https://www.realmebbs.com/post-details/1255473809142591488 1 下载apk…...

攻防世界 wife_wife

在这个 JavaScript 示例中,有两个对象:baseUser 和 user。 baseUser 对象定义如下: baseUser { a: 1 } 这个对象有一个属性 a,其值为 1,没有显式指定原型对象,因此它将默认继承 Object.prototype。 …...

Visual Studio安装下载进度为零已解决

因为在安装pytorch3d0.3.0时遇到问题,提示没有cl.exe,VS的C编译组件,可以添加组件也可以重装VS。查了下2019版比2022问题少,选择了安装2019版,下面是下载安装时遇到的问题记录,关于下载进度为零网上有三类解…...

响应式个人网站模板下载/企业网站推广优化

离散数学期末考试复习预测题二 重要考点一: 一、证明题(10分) 1)(P∧(Q∧R))∨(Q∧R)∨(P∧R)R 证明: 左端(P∧Q∧R)∨((Q∨P)∧R)((P∧Q)∧R))∨((Q∨P)∧R) ((P∨Q)∧R)∨((Q∨P)∧R)((P∨Q)∨(Q∨P))∧R ((P∨Q)∨(P∨Q))∧RT∧R(置换)R …...

霸州有做滤芯网站的吗/免费网站推广方式

0、引入 CPU负载率一定程度上反映了系统CPU的繁忙程度,且在多核cpu下与负载均衡,进程调度关系密切。实现对CPU负载率的监测有利于实现一套稳定可靠适用的系统。 1、负载率相关定义 1.1 平均负载的定义 1.1.1 Load average理解: 在特定时间…...

wordpress 手机不显示内容/公众号怎么引流推广

文章目录day8使用mui的tab-top-webview-main完成分类滑动栏兼容问题移除严格模式vue-previewday8 使用mui的tab-top-webview-main完成分类滑动栏 兼容问题 和 App.vue 中的 router-link 身上的类名 mui-tab-item 存在兼容性问题,导致tab栏失效,可以把…...

网站如何做提现功能/百度竞价优化

前言 Scheduler是Kubernetes组件中功能&逻辑相对单一&简单的模块,它主要的作用是:watch kube-apiserver,监听PodSpec.NodeName为空的pod,并利用预选和优选算法为该pod选择一个最佳的调度节点,最终将pod与该节…...

1.2婚庆网站建设的目的/免费域名解析平台

技术笔记 这两个机制的目的都是为了 解耦合 ,它们时联系和相互独立的。这样说似乎有些说不通。我们具体看一看 *** 它们是 (联系) 还是 (独立) 取决于我们要达到的目的: 目的一: 场景介绍:紧密联…...

商务 服务类网站模板/成都网站建设技术外包

p.s 文末附试验测试工程下载链接 拉格朗日插值法(封装函数) 函数接口 double LagrangeInterPol(double arrX[],double arrY[], int n, double x)其中arrX和arrY表示待插值数据点,n表示数据点个数,x表示待求点,retur…...