全网唯一js数组排序方法(自创排序)

时间:2021-2-27 作者:admin

排序原理:首先找到数组中的最大值,从0开始每次加1(0,1,2,3,…,max)。然后判断数组中的数是否等于它,等于就丢到新数组,完成排序

此排序运用了一个取数组最大值的方法。如下

var max = Math.max.apply(null,arr)
 function zichuang(arr){ //参数是任意一个数组
        var max = Math.max.apply(null,arr); // 取数组最大值 别疑惑 这一步很简单(Math.max.apply()取数组最大值的方法)  
        // console.log(max)
        var newArr = []; // 创建一个新数组
        for(var i = 0; i <= max;i++){ // 第一层循环是从0开始到最大值max结束
            for(var j = 0;j < arr.length;j++){ // 第二层是遍历老数组
                if(arr[j] == i){
                    newArr.push(arr[j]) // 如果数组中有一个数等于第一层循环中的数 就往新数组中添加
                }
            }
        }
        return newArr
    }
    console.log(zichuang([4,2,1,6,3,8])) // 最后输出[1,2,3,4,6,8]

此排序缺点:循环次数过多,和计数排序的循环次数一样。就是如果数组是[1,1000]它还是会循环1000次,因为它至少会循环数组最大值的值得次数。

此排序优点:可以同时完成排序,去重,计数。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。