简述一下冒泡排序的原理

简介: 简述一下冒泡排序的原理

我们先来了解一下冒泡排序的原理是什么?

概念:

概念:冒泡排序是一种简单的排序算法,可以把一系列的数据按照一定的顺序进行排列显示(从大到小或从小到大),它重复
如果他们的顺序错误就把他们交换过来,走访数列的工作是重复的进行直到没有
的走访过要排序的数列,一次比较两个元素,
再需要交换,也就是说该数列已经排序完成,这个算法的名字由来是因为越小的元素会经由交换慢慢浮到数列的顶端

基本原理:

1.比较相邻的元素,如果第一个比第二个大,交换他们两个

2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,在这一点,最后的元素应该是最大的值

3.针对所有的元素重复以上的步骤,除了最后一个

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

function bubbleSort(arr) {
    var len = arr.length;
    for (var i = 0; i < len - 1; i++) {
        for (var j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {        // 相邻元素两两对比
                var temp = arr[j+1];        // 元素交换
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
    }
    return arr;
}

这是用js代码实现的冒泡排序

目录
相关文章
|
机器学习/深度学习 自然语言处理 语音技术
智能语音识别技术的现状与未来####
在这篇文章中,我们将深入探讨智能语音识别技术的发展历程、当前的应用现状以及未来的发展趋势。通过分析该技术在不同领域的应用情况,我们可以更好地理解其重要性和潜力。此外,文章还将讨论当前面临的主要挑战和解决方案,为读者提供一个全面的视角。 ####
|
弹性计算 数据库
ECS使用有感
我是一名即将步入社会的大学生,随着网络法等相关专业知识的学习愈发强烈。查询资料时,常常会浏览到制作精美的个人站,因此产生了建设自己个人站的设想,但是由于业余时间少之甚少,同时听闻购买域名与服务器的价格不菲,因此计划一直未能实现
|
人工智能 文字识别 异构计算
NVIDIA-Ingest:英伟达开源智能文档提取及结构化工具,支持 GPU 加速和并行处理
NVIDIA-Ingest 是英伟达开源的智能文档提取工具,支持 PDF、Word、PPT 等多种格式,提供并行处理和 GPU 加速,适用于企业内容管理和生成式应用。
588 18
NVIDIA-Ingest:英伟达开源智能文档提取及结构化工具,支持 GPU 加速和并行处理
|
存储 人工智能 数据处理
无影云个人版,免费领取你的AI云电脑!
无影云个人版,利用先进的云计算技术,为用户提供全新的AI云电脑体验。无论是远程办公、数据处理还是视频会议,只需互联网接入即可享受无缝办公体验
869 11
|
Rust JavaScript 前端开发
我们都是调包侠
这篇内容讨论了从应用层到硬件层的编程工作,指出每个层次的程序员都是“调包侠”,即通过调用不同层次的接口来完成任务。应用层开发者使用高级语言控制设备,无需深入硬件细节。低级编程语言用于高性能需求,仍依赖操作系统。系统编程涉及硬件接口,需要了解硬件特性。硬件层面则涉及逻辑门电路设计与制造,需要考虑多种因素如性能、功耗和兼容性。文章强调各层次间的相互依赖,并提倡明确软件的局限性,选择细分方向,避免盲目跟风学习。
309 5
|
存储 监控 Java
InfluxDB时序数据库安装和使用
InfluxDB时序数据库安装和使用
1132 2
|
NoSQL Linux Shell
【进程概念】进程状态以及僵尸进程(结合代码)
【进程概念】进程状态以及僵尸进程(结合代码)
|
SQL 缓存 监控
性能测试(23)——完整性能项目案例
性能测试需求分析与传统的功能测试需求有所不同 功能测试需求分析:重点在于分析被测系统的功能是否满足产品功能需求规格(正向、逆向) 性能测试需求分析:重点在于分析被测系统是否能满足特定的业务需求场景(时间、资源) 需要从业务场景、程序代码、服务器、硬件配置等多个维度分析系统可能存在性能瓶颈
5237 1
|
jenkins Java Shell
Jenkins+Docker+GitLab+Springboot自动化部署(三)
Jenkins+Docker+GitLab+Springboot自动化部署(三)
885 0