首页 > 编程语言 >javascript如何进行冒泡排序?

javascript如何进行冒泡排序?

时间:2024-11-13 19:14:25浏览次数:3  
标签:arr javascript 交换 冒泡排序 如何 let 排序 比较

冒泡排序的规律

有一个数组[5,4,3,2,1],假如说要重新排序,进行升序排序,冒泡排序步骤如下

5和4比较,5大,5和4交换位置

[4,5,3,2,1]

5和3比较,5大,5和3交换位置

[4,3,5,2,1]

5和2比较,5大。5和2交换位置

[4,3,2,5,1]

5和1比较,5大,5和1交换位置

[4,3,2,1,5]

5排到了最后一位

4开始和后面的数比较,由于5已经排好,4只需要和后面的3,2,1比较换位就可以了,比较的次数比5少1次

3,2,1同样的道理,比上一轮排序少1次

可以得出结论,排序的轮数是数组长度-1

每轮排序次数是上一次-1

冒泡排序的时间复杂度是O(n^2),也就是说两层循环

代码如下

            let arr=[5,4,3,2,1]
			//冒泡排序一共要交换的趟数是n-1次
			//冒泡排序每趟进行排序的次数比上一次次数减1
			for(let i=0;i<arr.length-1;i++)
			{
				for(let j=0;j<arr.length-1-i;j++)
				{
					//开始交换
					if(arr[j]>arr[j+1])
					{
						let temp=arr[j]
						arr[j]=arr[j+1]
						arr[j+1]=temp
					}
				}
			}
			document.write(arr)

标签:arr,javascript,交换,冒泡排序,如何,let,排序,比较
From: https://blog.csdn.net/2301_81968528/article/details/143697355

相关文章

  • (教程)如何在 SVG 中嵌入 base64 图像
    创建SVG文件时,您可以通过多种方式嵌入图像,包括本地图像、外部URL和使用base64图像。本教程介绍如何嵌入base64图像以及为什么要这样做。为什么要将图像嵌入为base64?将图像嵌入为base64内容将减少所需的请求数,因为图像现在是SVG文件的一部分。但是,base64内容将......
  • 集运企业如何提升客户复购率与粘性
    在集运运营领域,如何提升客户的复购率和粘性一直是众多小伙伴关注的焦点。面对激烈的市场竞争,一些巧妙的小技巧或许能成为制胜法宝。赠送卡券是一种既实用又高效的客户吸引策略。当新客户进入会员中心时,自动弹出的新人礼包内含各类卡券,如抵扣运费券、补贴券等,这些都能有效激发......
  • 如何将下载的mp4视频嵌入react应用程序?
    将下载的mp4视频嵌入React应用程序可以通过以下步骤实现:将下载的mp4视频文件放置在React应用程序的合适位置,例如在public文件夹下创建一个videos文件夹,并将视频文件放置其中。在React组件中引入视频文件,可以使用<video>标签来嵌入视频。在组件的render方法中,可以使用以下代码来......
  • 如何通过蜘蛛池提高网站收录?
    蜘蛛池提高网站权重主要通过以下方式。 首先,蜘蛛池能够增加网站的抓取频率。搜索引擎蜘蛛会被蜘蛛池吸引,在蜘蛛池中爬行时,会顺着指向目标网站的链接访问该网站。如果蜘蛛池设置合理,会使得蜘蛛频繁访问目标网站。就像一家店铺,如果总是有很多顾客(蜘蛛)光顾,搜索引擎就会认为这个......
  • 新质生产力时代,GIS企业如何把握转型机遇
    随着信息技术的飞速发展,我们已迈入新质生产力时代,这一时代的特点是数据驱动、智能化和跨界融合。对于GIS(地理信息系统)厂商来说,适应这一时代的发展不仅是挑战,更是巨大的机遇。以下是GIS厂商适应时代发展的几个关键策略:1.技术创新与研发投入技术创新是GIS厂商适应......
  • altera FPGA arria 10如何将10g base-r进入用户模式进行校准
    在AlteraFPGA,特别是Arria10FPGA中,将10GBASE-R接口进入用户模式进行校准(通常是指收发器的PLL和相关电路的校准),可以通过以下步骤实现。这些步骤涉及到配置用户模式校准(UserModeCalibration)和动态重配置(DynamicReconfiguration)控制。1.确保收发器时钟信号的稳定......
  • 如何写好技术设计方案
    重要性写好技术设计方案,可以提升开发、沟通效率,有利于明确需求、规划架构、识别风险、梳理思路。全盘思考后再去写代码,避免边写代码边思考。参考目录结构修订版本修订版本按时间倒序,用于描述重大修改内容。参考:时间版本号修改内容修改人2024-11-12V1.1补充内容......
  • 揭秘!Vue3.5响应式重构如何让内存占用减少56%
    前言Vue3.5版本又将响应式给重构了,重构后的响应式系统主要有两部分组成: 双向链表和版本计数。我们在前两篇文章中我们已经讲过了,这篇文章我们来讲讲为什么这次重构能够让内存占用减少56%。为什么说“又”将响应式重构了因为在之前的Vue3.4版本中刚刚将响应式给重构了,这......
  • 教你如何清楚的分辨c语言各类指针类型定义
       可以这样说,学好了指针,就代表你学好了c语言。c语言中,通过合理的利用指针,可以快速高效的实现各种底层逻辑。下面陈列c语言中的各类指针定义,让大家分辨其中的具体意义。1,指针变量  我们定义一个指针变量p,指向整形变量i。#include<stdio.h>intmain(){int......
  • mybatis的resultType类如果是一个内部类,如何返回呢
    外部类:RechargeListVO内部类:Summary类的写法如下:@Data@Accessors(chain=true)publicclassRechargeListVOimplementsSerializable{/***充值时间*/privateStringrechargeTime;@Data@Accessors(chain=true)publicstaticclassSummaryimplementsS......