
谈到js数组,我们经常会想到js数组的操作方法。在众多操作方法中,对数组排序是十分重要的,数组排序有利于我们观察使用数组。本文介绍js数组最常见也是最常使用的5个方法,即1、sort方法;2、冒泡排序;3、插入排序;4、快速排序;5、选择排序。
1、sort方法
用于对数组的元素进行排序,是按照字符编码的顺序进行排序,会改变原数组的值,所以如果直接使用,可能无法达到我们想要的效果。
1 2 3 4 5 6 7 | var arr = [6, 3, 8, 7, 1, 5, 4, 2, 9];
arr.sort( function (a, b){
return a - b;
});
console.log(arr);
|
2、冒泡排序
先选出数值,拍到数组最后面,之后再选出第二大的值排到倒数第二位,依次类推。
1 2 3 4 5 6 7 8 9 10 11 12 | function bubbleSort(arr)
for ( var max=arr.length;max>0;max--) {
for ( var i=0;i<max;i++) {
if (arr[i]>arr[i+1]){
var maxValue = arr[i];
arr.splice(i,0,arr[i+1]);
arr.splice(i+2,1);
}
}
}
return arr;
}
|
3、插入排序
是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var insertSort = function ( arr) {
var len = arr.length;
var preIndex, current;
for ( var i = 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;
}
return arr;
}
|
4、快速排序
首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,然后对左右部分递归。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function selectSort( array ) {
var k = array .length;
for ( var i=0; i<k-1; i++) {
var minIndex = i;
for ( var j=i+1; j<k; j++) {
if ( array [j] < array [minIndex]) {
minIndex = j;
}
}
var temp = array [i];
array [i] = array [minIndex];
array [minIndex] = temp;
}
return array ;
}
|
5、选择排序
每一趟从待排序的数据元素中选出最小(或)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
1 2 3 4 5 6 7 8 9 10 11 12 | var b=0
var a=[1,9,33,2,5,34,23,98,14]
for ( var i=0;i<a.length;i++){
for ( var j=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)
|
以上就是js数组排序的几种常见方法,大家可以代入上述代码直接使用哦~