从小到大排序(个人笔记)

124 阅读1分钟

从小到大(包裹一种数组对象方式) 三种 (运行结果在最后)

第一种 sort方法

        function sortFun(arr) {
            arr.sort((a, b) => {
                // return a-b
                return a.sort - b.sort
            })
            return arr
        }
        console.time()
        // console.log("sort-方式", sortFun([13, 11, 12, 9, 10, 6, 8, 14, 7, 5, 3, 4, 1, 2]))
        console.log(sortFun([{sort:5,name:"张三"},{sort:2,name:"李四"},{sort:1,name:"王五"},]))
        console.timeEnd()

第二种 通过最小值删除

        function minFun(arr) {
            let relet = []
                for (let i = 0; i < arr.length; i++) {
                    let min = Math.min.apply(null, arr)  //获取数组当中最小值
                        if (min == arr[i]) { //获取最小值下标
                            arr.splice(i, 1) // 删除原数组最小值
                            relet.push(min) //添加到新数组
                            i = -1 //重置从0开始再次循环
                        }
                }
                return relet
        }
    console.time()
    console.log("循环获取最小值方法-", minFun([13, 11, 12, 15, 9, 10, 6, 8, 7, 5, 3, 4, 1, 2, 14]))
    // minFun([13, 11, 12, 15, 9, 10, 6, 8, 7, 5, 3, 4, 1, 2, 14])
    console.timeEnd()

第三种 冒泡排序

        function maoPaoFun(arr) {
                for (let i = 0; i < arr.length; i++) {
                        for (let j = 0; j < arr.length; j++) {
                            if (arr[i] < arr[j]) {
                                let tem = arr[j]
                                arr[j] = arr[i]
                                arr[i] = tem
                            }
                                tem = null
                        }
                }
                return arr
        }
        console.time()
        console.log("冒泡排序", maoPaoFun([13, 11, 12, 15, 9, 10, 6, 8, 7, 99, 5, 3, 4, 1, 2, 14]))  
        // maoPaoFun([13, 11, 12, 15, 9, 10, 6, 8, 7, 99, 5, 3, 4, 1, 2, 14])
        console.timeEnd()  //单纯执行比上面两个方法慢了0.08ms左右(取消log和return)

image.png