前端不懂算法(一)--冒泡排序

前端十种排序算法解析 排序算法 时间复杂度(平均) 空间复杂度 稳定性冒泡排序 O(n²) O(1) 稳定选择排序 O(n²) O(1) 不稳定归并排序 O(n log n) O(n) 稳定快速排序 O(n log n) O(log n) 不稳定插入排序 O(n²) O(1) 稳定希尔排序 O(n log n) O(1) 不稳定基数排序 O(nk) O(n + k) 稳定计数排序 O(n + k) O(k) 稳定桶排序 O(n + k) O(n + k) 稳定。 阅读详情

审核大哥,这篇文章是介绍前端实现排序算法,是很常见的IT知识,题目是对前端行业的调侃。善意的,友好的,符合 新时代思想文化建设的。

本篇文章参考借鉴了以下文章和极客时间的数据结构与算法一文,若涉及侵权,请联系我删除。

前言

  在学习编程的时候,大部分人接触的第一个算法应该都是排序。很多编程语言也都提供了排序函数。在平常项目中,我们也经常遇到排序。所以这个《前端不懂算法》系列就以排序开始,一起来学习一下经典排序。
   排序算法种类比较繁杂,每一种排序算法都有特定的使用场景,根据特点,实现原理,时间复杂度,空间复杂度等选择不同的排序方法。
  由于方法众多,有很多没听说过的排序,类似面条排序,猪蹄排序,火锅排序等,本系列我们学习最常用的,冒泡排序,插入排序,选择排序,快速排序,归并排序,桶排序,基数排序。
  本节我们先学习冒泡,插入和选择。
在这里插入图片描述
  带着问题学习,效率最高,先看一个思考题:插入排序和冒泡排序的时间复杂度相同,都是O(n2) 。在实际的软件开发中,为什么更倾向于使用插入排序而不是冒泡排序呢?
  先思考一分钟,然后我们一起学习。

如何分析一个“排序算法”?

  学习一个算法,不光是原理,实现,还得学会如何分析这个算法,对于排序算法,要从以下几个方面入手。

排序算法的执行效率

  排序算法的执行效率分为以下几个方面。

1.最好情况,最坏情况,平均情况时间复杂度

  我们在分析排序算法的时间复杂度的时候,需要分别给出乐观情况,悲观情况,平均情况下的时间复杂度。除此之外还要给出乐观,悲观情况下,原始数据是什么样子的。

为什么要区分三种情况下的时间复杂度呢?

  • 一、有些排序算法会区分,为了好对比,我们都做一下分类讨论。
  • 二、对于排序的顺序,有的接近有序,有的完全无序。有序度不同的数据,对于排序的执行时间肯定有影响。我们需要知道排序算法在不同数据下的表现。
2.时间复杂度的系数,常数,低阶

  我们知道时间复杂度是反映数据规模 n 很大的时候的一个增长趋势,所以它表示的时候会忽略系数,常数,低阶。但是实际的软件开发中,我们排序的可能是10个,100个,1000个这样规模很小的数据,所以,在对同一阶时间复杂度的排序算法性能对比的时候,我们就要把系数,常数,低阶也考虑进来。

3.比较次数和交换(或移动)次数

  冒泡,插入,选择都是基于比较的排序算法执行过程,会涉及两种操作,一种是比较,一种是移动。所以我们在分析排序算法的执行效率的时候,需要把比较次数和交换(或移动)次数也考虑进去。

排序算法的内存消耗

  排序算法的内存消耗可以用空间复杂度来表示,针对排序算法,我们还需要引入一个新的概念 原地排序算法 ,该算法是特指空间复杂度为O(1)的排序算法。本篇所讲的三种排序,都是原地排序算法。

排序算法的稳定性

  仅仅用执行效率和内存消耗来衡量排序算法的好坏是不够的。针对排序算法,还有一个指标, 稳定性 。这个概念的意思是如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后顺序不变。

  举个栗子:有一个数组[1, 3, 7, 3, 5,4],经过排序后会变成[1, 3, 3, 4, 5,7]

  这组数据中有两个3,如果经过排序后,如果这两个3的前后顺序没有改变,那么就称这种排序是 稳定的排序算法 ,如果前后顺序发生改变,那么就是 不稳定的排序算法。

  你可能会问,这两个3,谁在前谁在后,有什么问题吗?跟稳定性有什么关系?

  为什么需要考虑排序算法的稳定性,我们举例排序的时候都是拿整数来举例,但是在实际开发中,我们要排序的对象往往不是单纯的整数,而是一组对象,我们需要按照对象的某个key值来排序。

eg:现在需要给电商交易系统中的“订单”排序,该订单有两个属性,一个是下单时间,一个是订单金额,如果订“单数量”有10万条,我们希望按照金额,从小到大排序。对于相同金额的订单,我们希望按照下单时间进行排序,那么对于这样一个需求,应该如何来做?

  最先想到的方法可能是先对 金额 进行排序,然后再分别对于金额相同的数据,进行按 时间 排序,这种思路不难理解,但是执行起来会很复杂。

  如果我们借助稳定排序算法,那么这个问题可以很方便的解决。

思路如下:

  • 先按照下单时间进行排序
  • 然后用稳定算法按照金额再排序一遍

完成,金额相等的订单会按照时间顺序排好,问题来了,为什么?
在这里插入图片描述
  凭什么先排时间,再排金额,就完成了?

  稳定排序可以保证金额相同的两个对象,在排序之后的顺序不变。第一次排序后,所有的订单都按照下单时间排好了,在第二次排序中,我们用的是稳定排序,相同金额的两个对象,不会改变顺序,所以之前按时间排好的顺序,不会被打乱。
在这里插入图片描述

冒泡排序

  冒泡排序只会操作临近的两个数据,每次冒泡操作都会对相邻的两个数据进行比较,看是否满足大小关系要求,如果不满足,就让他俩互换。一次冒泡至少会让一个元素移动到它应该在的位置,重复n次,就完成了n个数据的排序工作。

  举个例子现在要对一组数据进行排序,4、5、6、3、2、1,从小到大进行排序,第一次的冒泡过程是这样的:

在这里插入图片描述
  从上图可以看出,经过一次冒泡操作后,6这个元素已经存储在正确的位置上了。想要完成所有数据的排序,只要经过6次这样的冒泡就可以了。
在这里插入图片描述

  实际上冒泡排序还可以优化,当某次冒泡操作没有数据交换时,说明已经达到完全有序,不用再继续执行后续的冒泡操作,下面的例子只需要4次冒泡就可以完成。
在这里插入图片描述
  冒泡排序算法原理还是比较清晰易懂的,以下是代码部分,可结合原理图查看

function bubbleSorting(arr) {
	let n =  arr.length;
	
	if (n<=1) return;
	
	for (let i = 0; i < n; ++i) {
	    //设立提前退出标志位
	    let flag = false;
	    for (let j = 0; j < n - i - 1; ++j) {
	        //交换
	        if (arr[j] > arr[j + 1]) {
	            let temp = arr[j];
	            arr[j] = arr[j + 1];
	            arr[j + 1] = temp;
	
	            //表示有数据交换
	            flag = true;
	        }
	    }
	    //没有数据交换,提前退出
	    if (!flag) break;
	}
}

  结合上文中分析排序算法的三个方面,现在有三个问题

Q1,冒泡排序是原地排序吗?

  • 冒泡排序只涉及相邻的数据交换,只需要常量级的临时空间,所以空间复杂度为O(1)。

Q2,冒泡排序是稳定的排序算法吗?

  • 在冒泡排序中只有交换才能改变两个元素的前后顺序,为了保证冒泡排序的稳定性,当两个元素大小相等的时候,我们不做交换处理,相同大小的数据在排序前后顺序不会改变,所以是稳定排序。

Q3,冒泡排序的时间复杂度是多少?

  • 最好情况下,要排序的数据已经是有序的了,我们只要一次冒泡就可以结束,所以最好情况时间复杂度是O(n),最坏的情况,要排序的数列完全是倒序的,我们需要进行n次冒泡,所以最坏情况时间复杂度O(n2)。
    在这里插入图片描述

  最好最坏情况下,时间复杂度都比较容易区分,那平均情况下时间复杂度是多少呢?

  这个时候需要结合概率论的知识点,平均时间复杂度就是加权平均期望时间复杂度

  对于包含 n 个数据的数组,这个数据就有 n! 种排列方式。不同的排列方式,冒泡执行的时间肯定是不同的。如果用概率论的定量分析平均时间复杂度,推导过程比较复杂(好吧是我不会,等我研究明白了帮你们推一遍o(╥﹏╥)o)。

  这里我们换一种思路,通过“有序度”, “逆序度”的概念来分析。

  有序度是数组中具有有序关系的元素对的个数,有序元素的数学表达式如下:

  有序元素对:a[i] <= a [j] ,如果 i < j 。
在这里插入图片描述
  同理,对于一个倒序排序的数组,比如6、5、4、3、2、1,有序度就是 0 ,对于一个完全有序的数组,比如1、2、3、4、5、6,有序度就是 n*(n-1)/2 ,也就是 15 ,这种完全有序的数组的有序度,称为 满有序度。

  逆序度的原理正好相反,逆序元素对:a[i] > a [j] ,如果 i < j 。

  关于上面的概念,还有一个公式:逆序度 = 满有序度 - 有序度。排序的过程就是增加有序度,减少逆序度的过程,达到满有序度后,排序就完成了。

  前面的例子,4、5、6、3、2、1,其中有序元素对为 (4,5),(4,6),(5,6)所以有序度是 3, n = 6 ,所以排序完成之后,最终的满有序度为 n*(n-1)/2 = 15。

在这里插入图片描述
  冒泡排序包含两个操作原子, 比较 和 交换。每交换一次,有序度就 +1 。不管算法怎么改进,交换次数是确定的,即为 逆序度, 也就是n*(n-1)/2 —初始有序度,此例要经过12次交换。

  对于包含 n 个数组的数组进行冒泡排序,平均交换次数是多少呢?最坏状态下,初始状态有序度是 0,所以要进行 n*(n-1)/2 次交换,最好情况下,不需要进行交换,我们可以去一个中间值 n*(n-1)/4 来表示有序度既不高也不低的情况。

  换句话说,平均情况下,需要 n*(n-1)/4 次 交换 操作, 比较 操作肯定要比 交换 操作要多,而且复杂度的上限是O(n2),所以平均情况下时间复杂度就是O(n2)。

  这种平均复时间复杂度的推导过程并不严谨,但是很实用。概率论定量分析太复杂,不太好用。后续博文会有快排的学习,到时候我们还会用这种“不严格”的方式来分析平均时间复杂度。

以上是我准备的系列文章《前端不懂算法》系列的第一篇,后续还会有不同算法的学习总结,欢迎各位大佬指点。

  文章跳转

前端练习之冒泡排序 文章目录前言一、简介二、代码部分总结 前言 实现最简单的排序。 一、简介 冒泡排序算法的原理如下: 1,比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2,对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3,针对所有的元素重复以上的步骤,除了最后一个。 4,持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 二、代码部分 <!DOCTYPE html> <html> <head> &lt 阅读详情

相关推荐

【愚公系列】十一大排序算法(一)-冒泡排序

排序算法是一种将一组数据按照特定的规则进行排列的方法。排序算法通常用于对数据的处理,使得数据能够更容易地被查找、比较和分析。下面是常见的11种排序算法:冒泡排序(Bubble Sort):比较相邻的元素,如果前面的元素大于后面的元素,就交换这两个元素的位置。时间复杂度为O(n^2)。选择排序(Selection Sort):在未排序的数据中找到最小(大)的元素,放置在已排序的数据末尾。时间复杂度为O(n^2)。

愚公智库 48万+

前端算法-冒泡排序。仅此一篇即可

1.冒泡排序分为冒大与冒小 冒大即为最先固定的值为数组中的最大值 冒小即为最先固定的值为数组中的最小值 2.冒大(常见的冒泡排序一般为冒大) i为排序的遍数 j为开始比较的位置 由上代码可知j从左开始 由上代码部分(i=0;i<len-1;i++) (j=0;j<len-1-i;j++) 双重循环执行 循环体内语句 进行判断满足条件进行交换 最终得出结果 输出 源码 let arr=[2 ,3 , 7 ,6 ,1 ,4] function b...

m0_47298312的博客 2679

Java实现冒泡排序算法详解

冒泡排序的核心在于通过相邻元素的比较与交换,逐步将较大的元素“浮”到数组的末尾。在 Java 中,我们可以将这一逻辑封装为一个独立的方法,供主程序调用。为了更好地进行调试和测试,我们往往需要对输出格式进行定制,甚至将排序过程记录到日志文件中。冒泡排序的时间复杂度为 O(n²),在实际工程中通常不是首选。然而,它的教学意义和对排序逻辑的直观表达,使其成为算法学习的起点。在理解其性能瓶颈后,开发者应根据实际需求选择更高效的排序算法,如快速排序、归并排序或非比较排序(如计数排序、桶排序)。

weixin_42452924的博客 959

前端必会算法——冒泡排序

冒泡排序 排序不是比较大小,排序的本质是比较和交换 第一次比较67和23,交换位置 第二次比较67和6,交换位置 第三次比较67和5,交换位置 第四次比较67和9,交换位置 第五次比较67和1,,交换位置 冒泡排序第一圈比完之后,会发现,把数组中最大的数推到了最后 不难发现每次循环比较两个数,都会把最大的数放到后面,把小的数交换到前面来,这就是冒泡排序的原理 代码实现: var arr = [67, 23, 6, 5, 9, 1]; // 这个sort可以是冒泡排序也可以是

qq_63664183的博客 2021

CubeMX配置ADC+DMA避坑实战:如何避免采样过快导致的系统崩溃

本文针对STM32开发中常见的ADC采样过快导致程序卡死问题,提供了基于CubeMX的实战避坑指南。通过分析ADC与DMA协作机制,详解时钟配置、采样时间、DMA缓冲区长度及中断设置等关键步骤,帮助开发者从源头规避系统崩溃风险,实现稳定可靠的数据采集。

weixin_28273593的博客 324

液晶屏LVDS接口:【图文详讲】

​LVDS(Low Voltage Differential Signaling,即低电压差分信号)接口又称RS-644总线接口,是20世纪90年代才提出的一种数据传输和接口技术。LVDS接口是美国NS美国国家半导体公司为克服以TTL电平方式传输宽带高码率数据时功耗大,电磁干扰大等缺点而研制的一种数字视频信号传输方式

weixin_66299220的博客 1万+

前端必会的十个排序算法

具体来说,就是将数列分别按个位,十位,百位... 的大小顺序排序,最后组合在一起。快速排序是一种分治算法,它的思想是通过选定一个基准值,将数组分成两个部分,左边部分的元素都小于等于基准值,右边部分的元素都大于基准值,然后再递归地对左右两个部分进行快速排序。桶排序是一种非比较的排序算法,通过分配数据到不同的桶中,最后对每个桶内的数据进行单独的排序或计数,最后将所有桶内的数据按顺序连接,即实现了排序的过程。在冒泡排序中,每次比较两个相邻的元素,并交换它们的位置,如果左边的元素比右边的元素大,则交换它们的位置。

weixin_46489412的博客 2228

Ubuntu虚拟机磁盘扩容实战:5分钟搞定gparted分区调整(附常见错误修复)

本文详细介绍了在Ubuntu虚拟机中使用gparted工具进行磁盘扩容的实战步骤。针对常见的交换分区阻碍问题,提供了从禁用交换空间、删除旧分区、调整主分区大小到重建交换分区并更新系统配置的完整解决方案,帮助用户在5-10分钟内安全高效地解决磁盘空间不足的难题。

1a2s3d4f5g的博客 669

前端冒泡排序算法详解及案例

它通过多次迭代,比较并交换相邻元素的位置,使得值较小的元素逐步从后面移到前面,值较大的元素从前面移到后面。就像碳酸饮料中的气泡最终会上升到顶端一样,值较大的元素会逐渐“冒泡”到数组的末端,因此得名“冒泡排序”。:冒泡排序的算法逻辑是通过相邻元素的比较和交换来逐步将较大(或较小)的元素“冒泡”到数组的末尾。冒泡排序算法的原理是通过相邻元素之间的比较和交换,把每一对相邻元素中较小的元素“浮”到前面,较大的元素“沉”到后面。:冒泡排序是一种稳定的排序算法,即相等元素的相对顺序在排序后保持不变。

qq_63447955的博客 1455

保姆级教程:一步步创建 ABAP Text Table

有朋友反馈,问有没有一个自己动手创建 Text Table 的例子,因为自己没有动手实践过,总觉得心里不踏实。这个行为的语义是,ZAI_TYPE_T 这张表的 AI_TYPE 字段值,不能随便维护,必须是表。然后另一个需要添加的字段是 AI_TYPE 这个字段值对应的文本值,本例笔者采用 SAP 标准的。也是自己创建的,很简单的一个 Data Element,类型为 CHAR,长度为 2.依次给主表的 01,02,03 三个字段值维护对应的描述信息,最后效果如下。按照下面的字段结构,创建另一。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4274

直捣黄龙~

这篇文章描述了一个矩阵寻路问题,要求计算从起点到终点的最短路径数量及长度。主要思路是通过BFS算法解决:首先标记哨兵警戒区域为禁区,然后从起点出发进行广度优先搜索,记录每个位置的最短步数和路径条数。当到达终点时,输出路径数和步数;若不可达则返回(0,0)。算法使用队列实现BFS,同时处理路径统计和步数记录,适用于网格寻路类问题。

面试高手的博客 216

前端经典算法之冒泡排序-选择排序-插入排序

前端经典算法之冒泡排序-选择排序-插入排序1、冒泡排序 算法步骤js代码实现2、选择排序1. 算法步骤js代码实现3、插入排序1. 算法步骤js 代码实现 1、冒泡排序 冒泡排序 (Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 +算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的

qq_45094682的博客 2455

SAP_ABAP_MM_BAPI清单案例教程——采购发票校验/预制_BAPI_INCOMINGINVOICE_PARK_MIRO

SAP ABAP BAPI_INCOMINGINVOICE_PARK BAPI 采购发票预制 采购发票校验 代码模版

java_zhong1990的专栏 1961

前端冒泡排序算法【javaScript与vue通用】

前端算法之冒泡排序 一📢

AI布道师丨波仔椿 500

51智能小车(双轮)

前几天接了个小单子,是一个基于51单品机的作品,发现自己对小车的认识还是不太🆗。也算是完成了任了的;欢迎各位小伙伴来多多交流,大家一起进步。最后有需要单片机课程设计的小伙伴滴滴我哦(有偿)。企鹅:2397746994。

qq_56992543的博客 2346

优快云独家 | 全网首发 | 《目标检测蓝皮书》目录

10篇文章从目标检测小白变大神

Coding... 3万+

前端十大算法

排序算法说明(1)排序的定义:对一序列对象根据某个关键字进行排序;输入:n个数:a1,a2,a3,…,an输出:n个数的排列:a1’,a2’,a3’,…,an’,使得a1’再讲的形象点就是排排坐,调座位,高的站在后面,矮的站在前面咯。(3)对于评述算法优劣术语的说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;...

axitongxue 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

冒泡排序和双向冒泡排序 —— 前端 js 版

冒泡排序和双向冒泡排序 js版冒泡排序冒泡排序理解冒泡排序实现冒泡排序优化双向冒泡排序双向冒泡代码实现 冒泡排序 冒泡排序理解 冒泡排序是基础的排序算法之一,效率非常低,但作为一名前端开发,掌握它还是必不可少的技能。 冒泡排序是将相邻两个元素进行比较,根据条件进行调换位置达到排序的目的。 冒泡排序实现 本例最大的数字放在了最右边,则下次遍历可少比较一次最右边的,本次需比较的次数:数组最大索引值 - 1(因为要比较 j + 1, j + 1 需小于等于数组最大索引值)- 遍历的次数 在力扣上通过排序测试时间

hulingyua的博客 1391

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

前端之冒泡排序

每种排序方法都是假设从小到大的排序的,从大到小的排序是一样的,就不在这一一讲解了。 冒泡排序 思想: 两两依次比较,如果前一个比后一个大,就交换,直到最后,那么,最后一个数就是最大的,交换到没有可以交换的时候,排序结束。 具体步骤: 1、比较相邻的元素,如果第一个比第二个大,交换两个元素的位置; 2、对每一对相邻的元素做同样的工作,直到最后一对,最后的元素会是最大的数; 3、针对除已经排序好的元素...

Lycoriy的博客 1232

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Python深度理解系列之【排序算法——冒泡排序】

冒泡排序算法的基本思想是通过重复遍历待排序的数列,比较每对相邻元素,如果它们的顺序错误(根据元素排序规则来说)就把它们交换过来。这个过程中,较小的元素会像气泡一样逐渐“浮”到数列的顶端,也就是数列的前端。这个过程会重复进行,直到数列被排序完成冒泡排序(Bubble Sort)是一种简单直观的排序算法,它通过重复遍历待排序的数列,比较每对相邻元素的大小,并在必要时交换它们的位置。

木道寻的技术学习分享博客 1939

前端算法---冒泡排序

冒泡排序:数组中相邻两个数进行比较,将数值较大或者unicode值比较大的往后排 如数组 var arr = [5,2,9,3,4,10,1,99,22,0,7],第一轮比较下来值为 [2, 5, 3, 4, 9, 1, 10, 22, 0, 7, 99] 最后一个值就是这个数组的最大值,最后一个值就不需要再比较,现在再将数组里面的 [2, 5, 3, 4, 9, 1, 10, 22, 0,...

qq_36765732的博客 1004

算法,冒泡排序

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法冒泡排序的思想就是在每次遍历一遍未排序的数列之后,将一个数据元素浮上去(也就是排好了一个数据)如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”假如我们要把 12、35、99、18、76 这 5 个数从大到小进行排序,那么数越大,越需要把它放在前面1,从后开始遍历,首先比较 18 和 76,发现 76 比 18 大,就把两个数交换顺序,得到 12、35、99、76、18。

weixin_42738504的博客 872

排序算法(一):冒泡排序

排序算法(一):冒泡排序 一、算法原理 冒泡排序(Bubble sort)是一种比较简单的排序算法,从前到后依此检查数列的每一对相邻元素,一旦发现它们逆序就交换二者位置。显然一轮扫描一般不能达到整体排序,则需要重复进行这种扫描过程,直到数列整体有序。这种算法的名称由来是因为越小(或越大)的元素会经过交换慢慢浮到数列顶端。 二、算法描述 假定需要将一个数列按照升序规则排列。 从头开始,若第一个...

FlowingDown的博客 455

深入解析冒泡排序算法:原理、优化与实现

冒泡排序(Bubble Sort)是一种简单的排序算法,通过重复遍历待排序的元素,逐步将最大(或最小)元素“冒泡”到序列的末端(或前端)。

u012372850的专栏 2264

【21天打卡】前端攻城狮重学算法之-冒泡排序

冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。

happy921212的博客 285

程序员必须掌握哪些算法?——前端开发工程师需要掌握的算法

一个程序员一生中可能会邂逅各种各样的算法,但总有那么几种,是作为一个程序员一定会遇见且大概率需要掌握的算法。作为一名前端开发工程师,今天就通过这个话题和文章来聊聊前端开发工程师需要掌握的算法有哪些呢。

黛琳ghz的博客,期待你的关注。 1694
上一篇: 四次挥手,女朋友就没有了,单身勿进
下一篇: 前端不懂算法(二)--插入排序,选择排序
不见浅诗~
博客等级 码龄7年 506粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值