js数组排序的几种方法

谈到js数组,我们经常会想到js数组的操作方法。在众多操作方法中,对数组排序是十分重要的,数组排序有利于我们观察使用数组。本文介绍js数组最常见也是最常使用的5个方法,即1、sort方法;2、冒泡排序;3、插入排序;4、快速排序;5、选择排序。

1、sort方法

用于对数组的元素进行排序,是按照字符编码的顺序进行排序,会改变原数组的值,所以如果直接使用,可能无法达到我们想要的效果

vararr=[6,3,8,7,1,5,4,2,9];
arr.sort(function(a,b){
returna-b;//升序排列
//returnb-a;//降序排列
});
//结果是[1,2,3,4,5,6,7,8,9]
console.log(arr);

2、冒泡排序

先选出数值,拍到数组最后面,之后再选出第二大的值排到倒数第二位,依次类推。

functionbubbleSort(arr)
for(varmax=arr.length;max>0;max--){
for(vari=0;i<max;i++){
if(arr[i]>arr[i+1]){
varmaxValue=arr[i];
arr.splice(i,0,arr[i+1]);
arr.splice(i+2,1);
}
}
}
returnarr;
}

3、插入排序

是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

varinsertSort=function(arr){
varlen=arr.length;
varpreIndex,current;
for(vari=1;i<len;i++){
preIndex=i-1;
current=arr[i];
while(preIndex>=0&&arr[preIndex]>current){
arr[preIndex+1]=arr[preIndex];
preIndex--;
}
arr[preIndex+1]=current;
}
returnarr;
}

4、快速排序

首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,然后对左右部分递归。

functionselectSort(array){
vark=array.length;
for(vari=0;i<k-1;i++){
varminIndex=i;
for(varj=i+1;j<k;j++){
if(array[j]<array[minIndex]){
minIndex=j;
}
}
vartemp=array[i];
array[i]=array[minIndex];
array[minIndex]=temp;
}
returnarray;
}

5、选择排序

每一趟从待排序的数据元素中选出最小(或)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。

varb=0//设置用来调换位置的值
vara=[1,9,33,2,5,34,23,98,14]
for(vari=0;i<a.length;i++){
for(varj=i;j<a.length;j++){
if(a[j]>a[j+1]){
b=a[j]
a[j]=a[j+1]
a[j+1]=b
}
}
}
console.log(a)//[1,2,5,9,14,23,33,34,98]

原文来自:https://www.py.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容