首页 > 其他分享 >js数组排序

js数组排序

时间:2024-08-18 12:52:20浏览次数:15  
标签:index arr js length inner 数组 排序

  1. 快速排序:每次循环使用数组中间位置的值按照大小,将数组分成左右两个部分,使用递归,分别对左右两个部分执行分割操作
     1 // 快速排序
     2 function quickSort(arr) {
     3     if (arr.length <= 1) {
     4         return arr;
     5     }
     6     const midIndex = Math.floor(arr.length / 2);
     7     const midValue = arr.splice(midIndex, 1)[0];
     8     const left = [];
     9     const right = [];
    10     for (const item of arr) {
    11         if(item < midValue) {
    12             left.push(item);
    13         } else {
    14             right.push(item);
    15         }
    16     }
    17     return quickSort(left).concat([midValue], quickSort(right));
    18 }
    19 
    20 // 测试代码
    21 const arr = [1,4,3,25,6,9,8]
    22 const result = quickSort(arr);
    23 console.log("result:", result);
  2. 冒泡排序:循环长度为n的数组,每循环一次将数组中第n-1大的数组放入数组中正确的位置。
    // 冒泡排序
    function bubbleSort(arr) {
        if (Array.isArray(arr) && arr.length === 0) return arr;
        for (let index = 0; index < arr.length - 1; index++) {
            for (let inner = 1; inner < arr.length - 1 - index; inner++) {
                if (arr[inner] > arr[inner + 1]) {
                    [arr[inner], arr[inner + 1]] = [arr[inner + 1], arr[inner]]
                }
            }
        }
        return arr;
    }
    
    // 测试代码
    const bubble = [1, 4, 3, 25, 6, 9, 8]
    const bubbleResult = bubbleSort(arr);
    console.log("bubbleResult:", bubbleResult);

标签:index,arr,js,length,inner,数组,排序
From: https://www.cnblogs.com/dadouF4/p/18365477

相关文章

  • UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xaf...--web逆向execjs读取j
    背景做web逆向的时候我们通常是纯python模拟js思路或js+python直接逆向,第二种情况下我们要先获取到想要的js代码,js文件内测试接口后,通过python中的`execjs`模块实现相应接口的调用。通常我们会直接从网站扣下需要的代码(分析后硬扣或通过webpack),然后稍加删改和补环境就直接使用......
  • 723java jsp SSM医院住院管理系统(源码+文档+运行视频+讲解视频)
    项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/10......
  • 721java jsp SSM办公管理系统通讯录考勤打卡日程信息管理(源码+文档+PPT+开题+任务书+
    项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/10......
  • 642java jsp SSM疫情防控管理系统(源码+文档+任务书+运行视频+讲解视频)
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 698java jsp SSM网络办公系统共享文件会议信息工作日程管理(源码+文档+运行视频+讲解视
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • js深拷贝
    功能如下:WeakMap解决循环引用问题支持拷贝的数据类型:基本数据类型:number、string、boolean、undefined、null、symbol引用数据类型:Date、RegExp、Function、Object、Map、Set代码实现:1functionclone(obj,map=newWeakMap){2if(map.has(obj))......
  • C语言程序设计-[22] 数组应用
    1、简单插入排序算法根据以上分析,代码与结果如下:#include"stdio.h"intmain(){ intcount,j,x,a[101];scanf("%d",&x);if(x<=0) return;else a[1]=x;count=1;scanf("%d",&x);while(x>0){ ......
  • JSP基于JAVAWEB医院挂号系统jep98(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,医生,护士,科室信息,预约时间段,出诊信息,预约挂号,门诊病历,医生打卡,护士打卡,就诊评价技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技......
  • JSP基于JavaWeb的CRM系统684y6程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:公告信息,部门,职位,用户,客户分组,客户信息,拜访记录,商机信息,订单信息技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoo......
  • JSP惠民一网通nwzyz--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:户主,新生入证明,迁入户籍,死亡证明,迁出户籍,本地人员流动,外来人员流动,民生业务,评分信息,应急电话开题报告内容一、项目背景随着信息化技术的飞速......