当前位置: 首页 » 综合知识 » it知识 » 正文

js数组排序的方法有哪些及怎么使用

发布时间:2023-07-14 以下文章来源于网友投稿,内容仅供参考!

1、sort方法

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

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

2、冒泡排序

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

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、插入排序

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

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、快速排序

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

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、选择排序

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

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)//[1, 2, 5, 9, 14, 23, 33, 34, 98]
  • • Linux Ecdsa密钥长度选择有何依据

    在Linux

  • • Linux Khook在内核监控中的应用如何

    Linux

  • • Linux Gsoap是否支持异步通信

    GSOAP是

  • • Linux Coremail如何提升用户体验

    提升Linu

  • • Linux Ecdsa算法有哪些局限性

    ECDSA

  • 哎呀音乐钢琴键盘学习《 钢琴主人训练营》 西瓜学琴
    郭蝈 陪练钢琴 30节课时 考级刚需 让孩子每一次练琴都是高质量的
    30天轻松学会五线谱 流行钢琴自学初级教程 牙牙学琴
    流行爵士钢琴实战技巧VIP课 - 继伟 哎呀音乐
    【海上钢琴师】原版 MT1990钢琴谱
    百首经典流行钢琴实战曲集 - 继伟
    雷费尔德电钢琴重锤88键专业考级儿童初学者数码电子钢琴家用
    小练咖 真人钢琴陪练 1v1服务 2999随时退 1课时50分钟 考级刚需
    雅马哈电钢琴88键重锤CLP735智能数码电子钢琴家用专业初学者考级
    【原装进口】Yamaha/雅马哈钢琴 b121 SC2原声静音钢琴
  • 珠海专业调钢琴
  • 天津宝坻区调钢琴
  • 天津静海区钢琴调音
  • 成都简阳市钢琴调律
  • 大连瓦房店市钢琴调音
  • 眉山调钢琴联系方式
  • 惠州大亚湾钢琴调琴师
  • 长治调琴师
  • 厦门湖里区钢琴调音师
  • 上海普陀区钢琴调音师