,,JavaScript数组排序的六种常见算法总结

,,JavaScript数组排序的六种常见算法总结

本文主要介绍了关于JavaScript数组排序的六种常用算法,通过示例代码进行了详细介绍,对大家学习或使用JavaScript数组有一定的参考价值。有需要的话一起学吧。

前言

如果你很着急,就选前面两个,看后面一个就行了。

在开发中,数组排序的需求非常频繁。本文将介绍几种常见的排序思路。

一、希尔排序(性能最好)

While(arr[n] arr[n-interval] n 0)如果要按降序排列。

//希尔排序算法

函数xier(arr){

var interval=parse int(arr . length/2);//数据包间隔设置

while(间隔0){

for(var I=0;长度;i ){

var n=I;

while(arr[n]arr[n-interval]n 0){

var temp=arr[n];

arr[n]=arr[n -间隔];

arr[n间隔]=temp;

n=n -区间;

}

}

interval=parseInt(区间/2);

}

返回arr

}

//数组

var arr=[10,20,40,60,60,0,30]

//打印排序后的数组

console.log(xier(arr))//[0,10,20,30,40,60,60]

二、sort排序(普通数组 / 数组嵌套对象)

一堆数组排序

//数组

var arr=[10,20,40,60,60,0,30]

//排序方法

arr.sort(函数(a,b){

/*

*返回b-a;—降序排序

*返回a-b;—升序

*/

返回a-b;

})//如果括号里没有写回调函数,默认按字母升序排列。

//打印排序后的数组

console.log(arr)//[0,10,20,30,40,60,60]

对象排序(对象数组)

//对象数组排序

var arr=[

{姓名:' syy ',年龄:0},

{姓名:' wxy ',年龄:18},

{姓名:' slj ',年龄:8},

{姓名:' wj ',年龄:20}

];

//排序方法

function Compare(property){//property:根据什么属性?

返回函数(a,b){

var value 1=a[属性];

var value 2=b[属性];

/*

*值2 -值1;3354降序排列

*值1 -值2;3354升序

*/

返回值1 -值2;//按升序排序

}

}

//打印排序后的数组

console . log(arr . sort(compare(' age '))

/*

0:{姓名:' syy ',年龄:0}

1:{姓名:' slj ',年龄:8}

2:{姓名:' wxy ',年龄:18}

3:{姓名:' wj ',年龄:20}

*/

三、桶排序

特点:简单,但非常浪费内存,几乎不用。

桶中出现的所有数组元素都用1标记,然后依次打印桶数组中用1标记的元素。

//数组

var arr=[]

//标记每个数组项(1)

for(设I=0;长度;i ) {

let key=arr[i]

arr[key]=1

}

//遍历每个打印项目。

for(让j在arr中){

调试器

console.log(j)

}

四、冒泡排序

表现:一般(每一项都需要比较)。

找出每次行程的最大值。

//数组

var arr=[10,20,40,60,60,0,30]

/*

*比较的总数是arr.length-1。

*每次比较的次数为arr.length-1次。

*依次递减

*/

可变温度;//交换变量ID

for的两层分别表示当前项和第二项。

for(设I=0;I arr . length-1;i ) {

for(设j=0;j arr . length-1;j ) {

//如果当前项大于第二项(后一项)则交换

if(arr[j] arr[j 1]) {

temp=arr[j]

arr[j]=arr[j 1];

arr[j 1]=temp;

}

}

}

//打印排序后的数组

console.log(arr)//[0,10,20,30,40,60,60]

五、选择排序

表现:一般(每一项都需要比较)。

假设某个位置的值是最小值,类似于冒泡排序。

//数组

var arr=[10,20,40,60,60,0,30]

可变温度;//交换变量ID

for的两层分别表示当前项和第二项。

for(设I=0;I arr . length-1;i ) {

for(设j=I ^ 1;j排列长度;j ) {

//假设第二项是最小值(如果是,交换/否则,继续比较)

if(arr[i] arr[j]) {

temp=arr[I];

arr[I]=arr[j];

arr[j]=temp;

}

}

}

//打印排序后的数组

console.log(arr)//[0,10,20,30,40,60,60]

六、插入排序

//数组

var arr=[10,20,40,60,60,0,30]

//排序算法

for(var I=0;长度;i ) {

var n=I;

while(arr[n] arr[n 1] n=0) {

var temp=arr[n];

arr[n]=arr[n 1];

arr[n 1]=temp;

n-;

}

}

//打印排序后的数组

console.log(arr)//[0,10,20,30,40,60,60]

总结

本文关于JavaScript数组排序的六种常用算法的总结到此为止。更多JavaScript数组排序的相关常用算法,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: