AIGC是什么,与AI绘画有什么关系,一篇文章带你了解AI绘画的前世今生

news2024/11/15 23:46:19

在讲解AIGC和AI绘画之前,我们先看看什么是AI以及AI的历史。

AI历史发展轨迹

什么是人工智能

人工智能(Artificial intelligence,简称AI)亦称机器智能,指由人制造出来的机器所表现出来的智能。通常人工智能是指用普通计算机程序来呈现人类智能的技术。是计算机科学的一个重要分支,是一门寻求模拟、扩展和增强人的智能的科学和技术领域,涉及计算机科学、心理学、哲学、神经科学、语言学等多个学科。人工智能的主要目标是使计算机或其他设备能够执行一些通常需要人类智慧才能完成的任务,如学习、理解、推理、解决问题、识别模式.处理自然语言、感知和判断等。

人工智能的发展可以分为两大类–弱人工智能(Weak AI)和强人工智能(Strong AI)。弱人工智能是指专门设计用来解决特定问题的智能系统,如语音识别、图像识别和推荐系统等。这些系统在某些特定任务上表现出高度的智能,但它们并不具备广泛的认知能力或自主意识。

强人工智能则是指具有广泛认知能力和类人意识的智能系统,这种系统理论上可以像人类一样处理各种问题,独立地学习和成长。然而,尽管人工智能领域已经取得了显著的进展,但目前尚未实现强人工智能。

发展历史

1-1

总体来说,人工智能的发展可以分为四个阶段。

1 早期研究(20世纪50年代-60年代)

第一个阶段,科学家们集中精力研究基本的人工智能概念和理论。代表性成果包括图灵测试、第一个人工智能程序(逻辑理论家)以及人工神经网络的基础研究。

2 知识表示与专家系统(20世纪70年代-80年代)

第二个阶段,研究重心转向利用知识表示、推理和规划技术,解决更复杂的问题。其间涌现出大量基于知识的专家系统,如早期的医疗诊断系统MYCIN。

3 机器学习与统计方法(20世纪90年代-21世纪初)

第三个阶段,人工智能领域开始广泛应用机器学习技术,尤其是统计学习方法。代表性技术包括支持向量机(SVM)、随机森林以及早期的深度学习方法。

4 大数据与深度学习(21世纪10年代一至今)

随着大数据的兴起和计算能力的提高,深度学习技术取得了突破性进展。诸如卷积神经网络(CNN)、循环神经网络(RNN)以及强化学习等领域取得了重要成果。这一阶段的人工智能已在众多应用场景中取得了显著的成绩,如图像识别、自然语言处理和自动驾驶等。

AIGC是什么

"Artificial Intelligence Generated Content"的首字母缩写,即采用人工智能技术来自动生产内容,目前AIGC已经可以生成文章、代码、对话、图片、视频、音乐、表格等多种多样的内容,而且还在快速发展。

从技术能力方面来看,AIGC根据面向对象、实现功能的不同可分为三个层次。

一、智能数字内容孪生:

简单的说,将数字内容从一个维度映射到另一个维度。
因为另一个维度内容不存在所以需要生成。内容孪生主要分为内容的增强与转译。增强即对数字内容修复、去噪、细节增强等。转译即对数字内容转换如翻译等。

【应用】:图像超分、语音转字幕、文字转语音等。

二、智能数字内容编辑:

智能数字内容编辑通过对内容的理解以及属性控制,进而实现对内容的修改。比如不同场景视频片段的剪辑。通过人体部位检测以及目标衣服的变形控制与截断处理,将目标衣服覆盖至人体部位,实现虚拟试衣。在语音信号处理领域,通过对音频信号分析,实现人声与背景声分离。以上就是在理解数字内容的基础上对内容的编辑与控制。

【应用】:视频场景剪辑、虚拟试衣、人声分离等。

三、智能数字内容生成:

智能数字内容生成通过从海量数据中学习抽象概念,并通过概念的组合生成全新的内容。如AI绘画,文本创作、音乐创作和诗词创作。再比如,在跨模态领域,通过输入文本输出特定风格与属性的图像,不仅能够描述图像中主体的数量、形状、颜色等属性信息,而且能够描述主体的行为、动作以及主体之间的关系。

【应用】:图像生成(AI绘画)、文本生成(AI写作、ChatBot)、视频生成、多模态生成等。

以上三个层面的能力共同构成 AIGC的能力闭环。

从生成内容层面AIGC可分为五个方面:

1、文本生成

【代表性产品或模型】:JasperAI、copy.AI、ChatGPT、Bard、AI dungeon等。

2、图像生成

【代表性产品或模型】:EditGAN,Deepfake,DALL-E、MidJourney、Stable Diffusion,文心一格等。

3、音频生成

【代表性产品或模型】:DeepMusic、WaveNet、Deep Voice、MusicAutoBot等。

4、视频生成

【代表性产品或模型】:Deepfake,videoGPT,Gliacloud、Make-A-Video、Imagen video等。

5、多模态生成

【代表性产品或模型】:DALL-E、MidJourney、Stable Diffusion等。

AIGC相关技术

最近几年,生成算法、预训练模型、多模态等A技术累积融合,催生了AIGC 的大爆发。

1-2

主要三方面:

一、基础的生成算法模型不断突破创新
基础的生成算法模型
模型提出时间模型描述
变分自动编码(Variational Autoencoders,VAE)2014年基于变分下界约束得到的Encoder-Decoder模型对
生成对抗网络(GAN)2014年基于对抗的Generator-Discriminator模型对
基于流的生成模型(Flow-based models)2015年学习一个非线性双射转换(bijectivetransfommation),其将训练数据映射到另一个空间,在该空间上分布是可以因子化的,整个模型架构依靠直接最大化log-likelihooo来完成
扩散模型(Diffusion Model)2015年扩散模型有两个过程,分别为扩散过程和逆扩散过程。在前向扩散阶段对图像逐步施加噪声,直至图像被破坏变成完全的高斯声,然后在逆向阶段学习从高斯噪声还原为原始图像的过程。 经过训练,该模型可以应用这些去噪方法,从随机输入中合成新的“干净”数据。
Transformer模型2017年一种基于自注意力机制的神经网络型,最初用来完成不同语言之间的文本翻译任务主体包含Encoder和Deco0er部分,分别负责对源语言文本进行编码和将编码信息转换为目标语言文本
神经辐射场(Neural Radiance Field, NeRF)2020年它提出了一种从一组输入图像中优化连续5D神经辐射场的表示(任何连续位置的体积密度和视角相关颜色)的方法,要解决的问题就是给定一些拍摄的图,如何生成新的视角下的图
CLIP (Contrastive Language-lmage Pre- Training)模型2021年1、进行自然语言理解和计算机视觉分析; 2、使用已经标记好的“文字-图像”训练数据。-方面对文字进行模型训练。一方面对另一个模型的训练,不断调整两个模型的内部参数,使得模型分别输出的文字特征和图像特征值并确认匹配。
二、预训练模型引发了AGC技术能力的质变
预训练模型
公司预训练模型应用参数量领域
谷歌BERT
LaMDA
PaLM
Imagen
Parti
语言理解与生成
对话系统
语言理解与生成、推理、代码生成
语言理解与图像生成
语言理解与图像生成
4810亿

5400亿
110亿
200亿
NLP
NLP
NLP
多模态
多模态
微软Florence
Turing-NLG
视觉识别
语言理解、生成
6.4亿
170亿
CV
NLP
FacebookOPT-175B
M2M-100
语言摸型
100种语言互译
1750亿
150亿
NLP
NLP
Deep MindGato
Gopher
AlphaCode
多面手的智能体
语言理解与生成
代码生成
12亿
2800亿
414亿
多模态
NLP
NLP
Open AIGPT3
CLIP&DALL-E
Codex
ChatGPT
语言理解与生成、推理等
图像生成、跨模态检索
代码生成
语言理解与生成、推理等
1750亿
120亿
120亿

NLP
多模态
NLP
NLP
英伟达Megatron- Turing NLG语言理解与生成、推理5300亿NLP
Stability AIStable Diffusion语言理解与图像生成多模态
三、多模态技术推动了 AIGC的内容多样性,让 AIGC具有了更通用的能力。

预训练模型更具通用性,成为多才多艺、多面手的 A 模型,主要得益于多模型技术(multimodal technology)的使用,即多模态表示图像、声音、语言等融合的机器学习。2021年,OpenAl 团队将跨模态深度学习模型CLP(Contrastive Language-lmage Pre-Training,以下简称“CLP”)进行开源。CLP 模型能够将文字和图像进行关联,比如将文字“狗”和狗的图像进行关联,并且关联的特征非常丰富。

在多模态技术的支持下,目前预训练模型已经从早期单一的 NLP 或 CV模型,发展到现在语言文字、图形图像、音视频等多态、跨态模型。

AI绘画

通过上面的介绍,我们知道了AI绘画只是AIGC的一部分内容(图像生成相关领域)。

AI绘画(Artificial Intelligence Painting)指的是应用人工智能技术生成绘画作品。这项技术的产生源于计算机科学、神经网络和机器学习等领域的发展。最早的计算机生成技术可以追溯到20世纪50年代,近年来的发展则主要归功于深度学习技术的进步以及硬件性能的提升。

从原理上来说,现代AI绘画技术主要是通过神经网络大量学习艺术作品的风格和特征,最后将所学的元素和风格融合到新的作品中,从而创作出新的绘画作品。

发展历程

早期的计算机绘画尝试

1965年,纳克发布了一幅由计算机程序生成的画作,名为《向保罗·克利致敬》(Hommage à Paul Klee)(如图1-1所示)。

1-3

哈罗德·科恩(Harold Cohen)是一位英国艺术家,曾代表英国参加1966年的威尼斯双年展。1968年,他成为加州大学圣地亚哥分校的客座教授,在那里他接触到了计算机编程。1971年,他向秋季计算机联合会议展示了一个初步的绘画系统原型,并因此受邀以访问学者的身份前往斯坦福人工智能实验室,1973年,他在那里开发了名为AARON的计算机绘画程序。下图为科恩的两幅作品。

1-4

1-5

到后面1980年,本诺伊特·曼德尔布罗创作的图片:
1-6

同时计算机技术不停发展,到20世纪80年代至90年代,神经网络和机器学习技术的出现,为计算机绘画的发展带来了新的可能性,这些技术允许计算机通过学习大量数据来模拟人类大脑的工作方式,从而在一定程度上实现智能绘画。

新技术的发展(21世纪10年代)

2012年,AlexNet的深度卷积神经网络(Convolutional Neural Network, CNN)的算法出现在绘图上取得不错效果。
AlexNet主要应用于计算机视觉领域,特别是图像分类任务。然而,它的成功也对AI绘画领域产生了深远影响,许多研究人员受到启发,开始探索AI在视觉艺术领域的潜力,为后续研究和应用奠定了基础。

到2014年,生成对抗网络(GenerativeAdversarial Networks, GAN),被认为是过去20年人工智能历史上最大的进步。AI领域杰出人物、百度前首席科学家吴恩达曾如此评价:GAN代表着“一项重大而根本性的进步”。

GAN取得了前所未有的突破,经过良好训练的GAN能生成非常高质量的新图像,这些图像对于人类观察者来说极 具真实感,几乎无法区分是真实图像还是AI生成的图像。正是因为如此,这个算法一度成为AI绘画的主流研究方向。

下图为GAN生成图像:

1-7

2016年,一个名为扩散模型(Diffusion Models)的新方法被提出,它的灵感来自非平衡统计物理学,通过研究随机扩散过程来生成图像。如果可以建立一个学习模型来学习由于噪声引起的信息系统衰减,那么也可以逆转这个过程,从噪声中恢复信息。简单来说,扩散模型的原理为:首先向图片添加噪声(正向扩散),让算法在此过程中学习图像的各种特征,然后,通过消除噪声(反向扩散)来训练算法恢复原始图片。这种方法与GAN的思路截然不同,它很快便在图像生成。

下图为扩散模型从噪声生成图片的过程:

1-9

现代AI绘画(21世纪20年代)
DALL·E 2

2020年,OpenAI推出了具有突破性的深度学习算法CLIP(Contrastive Language-Image Pretraining,对比语言—图像预训练)。这一算法在人工智能领域产生了深远影响,对人工智能艺术的发展也带来了重大变革。CLIP将自然语言处理和计算机视觉相结合,能够有效地理解和分析文本与图像之间的关系,例如把“猫”这个词和猫的图像联系起来,这就为构建基于文本提示进行艺术创作的AI提供了可能。

2021年,OpenAI推出了名为DALL·E的产品,它能根据任意文字描述生成高质量图像。在此之前,虽然已经存在许多神经网络算法能够生成逼真的高质量图像,但这些算法通常需要复杂精确的设置或者输入,相较之下,DALL·E通过纯文本描述即可生成图像,这一突破性的改进极大降低了AI绘画的门槛,并迅速成为流行的标准。

Imagen

2022年4月,就在DALL·E 2发布之后不久,谷歌发布了基于扩散的图像生成算法Imagen,也是一个通过文字生成图像的工具。

Stable Diffusion

2022年7月,一家创始于英国的名为StabilityAI的公司开始内测他们所开发的AI绘画产品Stable Diffusion,这是一个基于扩散模型的AI绘画产品。人们很快发现,它生成的图片质量可以媲美DALL·E 2,更关键的是,内测不到1个月,Stable Diffusion就正式宣布开源,这意味着如果有计算资源,就可以让Stable Diffusion在自己的系统上运行,还可以根据自己的需求修改代码或者训练模型,打造专属的AI绘画工具。

Midjourney

Midjourney是由同名公司开发的另一种基于扩散模型的图像生成平台,于2022年7月进入公测阶段,面向大众开放。与大部分同类服务不同,Midjourney选择在Discord平台上运行,用户无须学习各种烦琐的操作步骤,也无须自行部署,只要在Discord中用聊天的方式与Midjourney的机器人交互就能生成图片。

AI绘画工具

目前AI绘画快速发展,国内外都出现了许多免费和服务的平台,如下:

国外
NameTagsURL
midjourney新用户免费20次https://www.midjourney.com/
wombo.art免费https://app.wombo.art/
Google Colab免费https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/stable_diffusion.ipynb#scrollTo=yEErJFjlrSWS
DALL·E 2排队申请https://openai.com/dall-e-2/
artbreeder免费https://www.artbreeder.com/beta/collage
dreamstudio200点数https://beta.dreamstudio.ai/
nightcafe-https://creator.nightcafe.studio/create/text-to-image?algo=stable
starryai-https://create.starryai.com/my-creations
webui免费https://colab.research.google.com/github/altryne/sd-webui-colab/blob/main/Stable_Diffusion_WebUi_Altryne.ipynb
替换图片免费https://colab.research.google.com/drive/1R2HJvufacjy7GNrGCwgSE3LbQBk5qcS3?usp=sharing
webui-AUTOMATIC1111版本免费https://colab.research.google.com/drive/1Iy-xW9t1-OQWhb0hNxueGij8phCyluOh
生成视频免费https://github.com/THUDM/CogVideo
PS插件-绘画生成图片-https://www.nvidia.com/en-us/studio/canvas/
3D模型免费https://colab.research.google.com/drive/1u5-zA330gbNGKVfXMW5e3cmllbfafNNB?usp=sharing
elbo-https://art.elbo.ai/
deepdreamgenerator-https://deepdreamgenerator.com/
big-sleep免费https://github.com/lucidrains/big-sleep/
nightcafe-https://nightcafe.studio/
craiyon-https://www.craiyon.com/
novelai-https://novelai.net/
novelai 免费版免费https://github.com/JingShing/novelai-colab-ver
Sd-Outpainting免费https://github.com/lkwq007/stablediffusion-infinity
TyPaint免费https://apps.apple.com/us/app/typaint-you-type-ai-paints/id1624024392
PicSo新用户每天免费10次https://picso.ai/
sd-outpaing免费https://github.com/lkwq007/stablediffusion-infinity
novelai-colab 版本免费https://github.com/acheong08/Diffusion-ColabUI
novelai-colab 版本2免费https://github.com/JingShing/novelai-colab-ver
Maze.Guru免费https://maze.guru
国内

1.泛类AI绘画产品

Name价格URL
文心-一格暂时免费https://yige.baidu.com/#/
6pen部分免费https://6pen.art/
MewxAI人工智能免费微信小程序 / https://mewx.art
大画家Domo-https://www.domo.cool/
盗梦师有免费次数 + 付费微信小程序搜盗梦师
画几个画-微信小程序搜画几个画
Niko绘图免费 + 看广告微信小程序搜Niko绘图
飞链云AI绘画版图免费https://ai.feilianyun.cn/
Freehand意绘免费https://freehand.yunwooo.com/
即时AI免费https://js.design/pluginDetail?id=6322a4ab0eededcff6ba451a
意见AI绘画有免费次数 + 付费微信小程序搜意见AI绘画
PAI免费https://artpai.xyz/
爱作画有免费次数 + 付费https://aizuohua.com/
皮卡智能AI免费https://www.picup.shop/text2image.html#/
云景AI绘图免费https://yunjing.gallery
100prompt免费http://100prompt.com
C站模型直接使用:TryYourAI部分免费https://tryyourai.com
创作+赚钱:WaterWheel有免费次数 + 付费https://waterwheel.network

2.垂类绘画产品

Name价格URL使用场景
妙鸭相机有免费/有付费小程序搜妙鸭相机AI写真
星月熊有免费/有付费https://qr.mewx.artAI二维码
WeShop有免费/有付费https://weshop.com/AI模特
彩鱼相机有免费/有付费https://pixpi.art/AI形象


到此AI绘画相关的历史基础介绍完了,后面我会出一个系列的AI绘画相关知识和视频,同时也在公众号持续更新,欢迎大家持续关注微信公众号"壁虎说技术"。


微信公众号

参考

人工智能

可使用绘画的平台

万字长文:AIGC技术与应用全解析

腾讯研究院AIGC发展趋势报告2023

商用级AIGC绘画创作与技巧(Midjourney+Stable Diffusion)

人工智能内容生成(AIGC)白皮书(中国信息通讯研究院&京东探索研究院)

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

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

相关文章

ConfigMap-secrets-静态pod

一.ConfigMap 1.概述 ConfigMap资源,简称CM资源,它生成的键值对数据,存储在ETCD数据库中 应用场景:主要是对应用程序的配置 pod通过env变量引入ConfigMap,或者通过数据卷挂载volume的方式引入ConfigMap资源 官方解释…

成为git砖家(1): author 和 committer 的区别

大家好,我是白鱼。一直对 git author 和 committer 不太了解, 今天通过 cherry-pick 的例子搞清楚了区别。 原理 例如我克隆了著名开源项目 spdlog 的源码, 根据某个历史 commit A 创建了分支, 然后 cherry-pick 了这个 commit …

240710_昇思学习打卡-Day22-条件随机场

240710_昇思学习打卡-Day22-条件随机场 在正式开始LSTMCRF序列标注之前,我们先来了解一下条件随机场,以下仅做简单介绍。 CRF全称Conditional Random Field,按照名字来理解,条件随机,随机输入,条件输出。…

vue中父子传递属性值

1、父传子属性值 自定义图库组件 在add.vue中应用tuku组件并给默认值 效果 2、 子传父,逆向赋值 add.vue和第一问中一样 修改tuku组件,传值给add.vue 3、多个传递 效果: 点击两个修改按钮后 4、使用defineModel简化父子传值 其他代码跟…

使用Tkinter库设计实现的中小学校疫情防控入校人员登记检测系统

Tkinter简介 Tkinter是Python标准库中用于GUI图形用户界面开发的工具包,它是基于Tcl/Tk的封装,提供了大量预定义的控件,如按钮、文本框、标签等,非常适合快速原型开发和小型应用的构建。本文将通过一个具体的案例——“中小学校疫…

【java】力扣 合并k个升序链表

文章目录 题目链接题目描述思路代码 题目链接 23.合并k个升序链表 题目描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表 思路 我在这个题里面用到了PriorityQueue(优先队列) 的知识 Prio…

鸿蒙语言基础类库:【@system.app (应用上下文)】

应用上下文 说明: 从API Version 7 开始,该接口不再维护,推荐使用新接口。本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import app from system.app;app.getInfo …

MFC之对话框--重绘元文件

文章目录 实现示例展示需要绘制的窗口/位置控件位置更新下一次示例粗细滑动部分更新 重绘元文件(窗口变化内容消失)方法一:使用元文件方法二:兼容设备方法三:使用自定义类存储绘图数据除画笔外功能处理画笔功能处理 保…

【雷达原理】MIMO雷达技术

一、MIMO雷达原理 1.1 基本概念 多输入多输出(Multiple input multiple output,MIMO)雷达指该雷达具有多个发射天线和多个接收天线。 学术界对 MIMO 雷达的定义中,多输入是指同时发射多种雷达信号波形( 一般是多个天线同时发射不同的波形) ,…

藏着不为人知的泪水

在娱乐圈的璀璨舞台上,每一个光芒四射的背后,藏着不为人知的汗水与泪水。提及#张艺凡 出道位#,这段历程,不仅仅是个人奋斗的见证,更是关于勇气、坚持与自我证明的壮丽篇章。曾几何时,网络的喧嚣声中&#x…

【信息系统项目管理师】高项常见知识点与公式

绩效域、合同、配置、变更、招投标、安全、立项论文考到的话大致业是按下面相关知识点开写 八大绩效域及其要点 团干部策划开公交 合同管理 合同的签订->合同的履行管理->合同的变更管理->合同的档案管理->合同的违约\索赔管理 配置管理 制定配置管理计划配置识…

欧几里得算法求解若干数的最小公倍数

公倍数 公倍数(common multiple)是指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数。公倍数中最小的数,就称为这些整数的最小公倍数(lowest common multiple) 求解方法 求多个数的最小公…

c++ new 与二级指针

new 与数组的简单用法&#xff0c;一个简单的例子&#xff1a; #include <stdio.h> #include <stdlib.h>#define MAX_ARRAY_NUM 10int main() {int *p new int[MAX_ARRAY_NUM];for(int i 0; i < MAX_ARRAY_NUM; i){p[i] i 10;}for(int i 0; i < MAX_AR…

MAVSDK动态库与静态库及mavsdk_server程序macOS平台编译与安装

1.克隆mavsdk: git clone https://github.com/mavlink/MAVSDK.git --recursive 2.编译静态库 cmake -Bbuild/default -H. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF 生成makefile 生成成功,开始编译 cmake --build build/default -j8 成功生成libmavsdk.a 开…

BUCK电源芯片,电气参数,极限参数,工作特性,引脚功能

概述 在应用DC-DC开关电源芯片时&#xff0c;通常需要关注以下参数&#xff0c;同步与非同步&#xff0c;输入电压&#xff0c;输入电流&#xff0c;输出电压&#xff0c;输出电流&#xff0c;输入输出电容的选择&#xff1b;mosfet选型&#xff0c;电感选型&#xff0c;功耗&a…

python作业三

1.使用requests模块获取这个json文件http://java-api.super-yx.com/html/hello.json 2.将获取到的json转为dict 3.将dict保存为hello.json文件 4.用io流写一个copy(src,dst)函数,复制hello.json到C:\hello.json import json import shutilimport requests #使用requests模块获…

RPC与服务的注册发现

文章目录 1. 什么是远程过程调用(RPC)?2. RPC的流程3. RPC实践4. RPC与REST的区别4.1 RPC与REST的相似之处4.2 RPC与REST的架构原则4.3 RPC与REST的主要区别 5. RPC与服务发现5.1 以zookeeper为服务注册中心5.2 以etcd为服务注册中心 6. 小结参考 1. 什么是远程过程调用(RPC)?…

MybatisPlus(MP)基础知识

MP BaseMapper 为了简化单表CRUD&#xff0c;MybatisPlus提供了一个基础的BaseMapper接口&#xff0c;其中已经实现了单表的CRUD&#xff0c;因此我们自定义的Mapper只要实现了这个BaseMapper&#xff0c;就无需自己实现单表CRUD了。 package com.itheima.mp.mapper;import …

基于javaScript的冒泡排序

目录 一.前言 二.设计思路和原理 三.源代码展示 四. 案例运行结果 一.前言 冒泡排序简而言之&#xff0c;就是一种算法&#xff0c;能够把一系列的数据按照一定的顺序进行排列显示&#xff08;从小到大或从大到小&#xff09;。例如能够将数组[5,4,3,2,1]中的元素按照从小到…

优选算法之双指针(上)

目录 双指针&#xff08;利用数组下标来充当指针&#xff09;&#xff1a; 一、移动零 1.题目链接&#xff1a;283.移动零 2.题目描述&#xff1a; 3.解法&#xff08;快排的思想&#xff1a;数组划分区间 - 数组分两块&#xff09; &#x1f334;算法思路&#xff1a; …