JS简单排序呀

229 阅读1分钟

哈哈 无聊瞎写的

1.冒泡排序

    let arr= [4,3, 5, 6., 9,1, 78,15,456,8887,15,677,45,10,10000]

        for(let i=0; i<arr.length - 1; i++){
            for(let l = i; l<arr.length; l++){
                if(arr[i]<arr[l]){
                    [arr[i],arr[l]] = [arr[l],arr[i]]
                }
            }
        }

        console.log(arr) // (15) => [10000, 8887, 677, 456, 78, 45, 15, 15, 10, 9, 6, 5, 4, 3, 1]

2.去重

 let arr = [1,2,6,1,3,2,6,5]
console.log([...new Set(arr)])   // (5) => [1, 2, 6, 3, 5]

3.递归排序

        let arr= [4,3, 5, 6., 9,1, 78,15,456,8887,15,677,45,10,10000]

        function sortArr (arr){
            if(arr.length <= 1){
                return arr
            }
     
            let Index = arr.splice(0,1); 
            // 或者
            var pivotIndex = Math.floor(arr.length / 2);
            var Index = arr.splice(pivotIndex, 1)[0];

            
            let left = []
            let right = []
            for(let i=0; i<arr.length; i++){
                if(arr[i] <= Index){
                    left.push(arr[i])
                }else{
                    right.push(arr[i])
                }
            }
            // console.log(left)
            return sortArr(left).concat(Index,sortArr(right))
        }

        console.log(sortArr (arr))

4.最大值和最小值

let arr= [4,3, 5, 6., 9,1, 78,15,456,8887,15,677,45,10,10000,10,458]
        var Max = arr[0]
        var Min = arr[0]
        for(let i=0; i< arr.length; i++){
           
            if(Max < arr[i]){
                Max = arr[i]
            }

            if(Min > arr[i]){
                Min = arr[i]
            }
        }
        console.log(Max,Min)

5.数组去重,并统计各自出现的次数

 let arr= [1,2,1,5,1,5,1,55,1,25,2,216,61,66,15,61,62,25,26]
        let arrSort = []
        let arrJson = {}
        for(let i=0; i<arr.length; i++){
            if(arrSort.indexOf(arr[i]) != -1){
                arrJson[arr[i]] = arrJson[arr[i]] + 1
            }else{
                arrSort.push(arr[i])
                arrJson[arr[i]] = 1

            }
        }

        console.log(arrSort)  // (11) => [1, 2, 5, 55, 25, 216, 61, 66, 15, 62, 26]
        console.log(arrJson)  // {1: 5, 2: 2, 5: 2, 15: 1, 25: 2, 26: 1, 55: 1, 61: 2, 62: 1, 66: 1, 216: 1}