首页 > 编程语言 >javascript 快排

javascript 快排

时间:2023-07-16 23:12:16浏览次数:36  
标签:arr arrRight javascript quickSort 快排 var arrSort

    function quickSort(arr){
                    //如果数组只有一个数,就直接返回;
                    if(arr.length<1){
                        return arr;    
                    }
                    
                    //找到中间的那个数的索引值;如果是浮点数,就向下取整
                    var centerIndex = Math.floor(arr.length/2);
                    
                    //根据这个中间的数的索引值,找到这个数的值;
                    var centerNum = arr.splice(centerIndex,1);
                    
                    //存放左边的数
                    var arrLeft = [];
                    //存放右边的数
                    var arrRight = [];
                    
                    for(i=0;i<arr.length;i++){
                        if(arr[i]<centerNum){
                            arrLeft.push(arr[i])
                        }else if(arr[i]>centerNum){
                            arrRight.push(arr[i])
                        }
                    }
                    return quickSort(arrLeft).concat(centerNum,quickSort(arrRight));
                    
                };
                var arrSort = [4,3,1,5,8,2];
                var arr1 = quickSort(arrSort);
                console.log(arr1);

 

标签:arr,arrRight,javascript,quickSort,快排,var,arrSort
From: https://www.cnblogs.com/qietu/p/17558805.html

相关文章

  • 【技术积累】JavaScript中的基础语法【二】
    JavaScript编写方式JavaScript是一种脚本语言,用于为网页添加交互性和动态功能。它可以直接嵌入到HTML中,并通过浏览器解释执行。下面是一些常见的JavaScript编写方式和相应的代码示例:内联方式在HTML文件中直接嵌入JavaScript代码,使用`<script>`标签将代码包裹起来。这种方式适用......
  • JavaScript:将对象数组映射到字典
    JavaScript:将对象数组映射到字典#javascript#打字稿#数据在JavaScript/TypeScript中将对象数组转换为字典的最简单方法:letdata=[{id:1,country:'Germany',population:83623528},{id:2,country:'Austria',population:8975552},{id:3,country......
  • 【技术积累】JavaScript中的基础语法【一】
    Math对象JavaScript中的Math对象是一个内置的数学对象,表示对数字进行数学运算的方法和属性的集合。Math对象不是一个构造函数,所以不能使用new关键字来创建一个Math对象的实例。它包含了一些常见的数学运算函数和常量,可以直接通过Math对象来调用。以下是Math对象的一些常用方法:......
  • JavaScript
    html<!DOCTYPEhtml><htmllang="en"xmlns="http://www.w3.org/1999/html"><head><metaname="author"content="weiyupeng"><metaname="time"content="2023/7/1020:23"......
  • 10.JavaScript原型,原型链有什么特点
    10.JavaScript原型,原型链?有什么特点?在js中我们是使用构造函数来新建一个对象的,每一个构造函数的内部都有一个prototype属性值,这个属性值是一个对象,这个对象包含了可以由该构造函数的所有实例共享的属性和方法。当我们使用构造函数新建一个对象后,在这个对象的内部将包含......
  • JavaScript at() 方法
    数组对象:对于获取数组的最后一个元素,可能平常见得多的就是arr[arr.length-1],我们其实可以使用at()方法进行获取接收一个整数值并返回该索引对应的元素:constarr=[5,12,8,130,44];letindex1=2;strt1=`索引号为${index1}的值为${arr.at(index1)}`;letind......
  • 【javascript】关于文件下载
    通常在a标签href属性后加上请求下载文件的地址,页面点击即可下载,该种方式是交由浏览器去下载,但是无法监听下载进度若通过AJAX请求,则需要对其进行解析,通常将数据转为blob,然后模拟a标签点击事件,但是此方法如果文件过大,接口调用时超出ajax的timeout时长,会下载失败......
  • 【JavaScript】你真的熟悉bind吗
    引言内容速递看了本文您能了解到的知识!在本篇文章中,将带你了解什么是bind,bind的用途、如何手写bind以及工作中实际使用bind的场景。在JavaScript中,bind()方法是用来创建一个新函数,并将其绑定到指定的对象上,从而在调用该函数时确保函数中的this关键字指向绑定的对象。1、什......
  • 【JavaScript】js 处理复制函数实现
    exportconstcopyText=(text:string)=>{constinput=document.createElement('input');input.setAttribute('readonly','readonly');input.setAttribute('value',text);document.body.appendChild(input);......
  • ASP.NET Core SignalR 系列(三)- JavaScript 客户端
    本章将和大家分享ASP.NETCoreSignalR中的JavaScript客户端。ASP.NETCoreSignalRJavaScript客户端库使开发人员能够调用服务器端SignalR中心代码。本文大部分内容摘自微软官网:https://learn.microsoft.com/zh-cn/aspnet/core/signalr/javascript-client?view=aspnetcore......