js数组的四种排序

//sort实现排序 按照字符串排序的
        //按数字排序可以加入一个回调函数
        var arr2 = [2,1,34,56,78,98,7,34];
        console.log(arr2.sort(compare),'sort');
        function compare(value1,value2){
            if(value1<value2){
                return -1
            }else if(value1>value2){
                return 1;
            }else{
                return 0;
            }
        }
        //冒泡排序 即通过两两比较最值放到最后一位 再缩小循环的范围
        function bubbleSort(arr){
            for(let forLength=arr.length-1; forLength>0;forLength--){
                for(let i=0; i<forLength;i++){
                    if(arr[i]<arr[i+1]){
                        var mid = arr[i];
                        arr[i] = arr[i+1];
                        arr[i+1] = mid;
                    }
                }
            }
            return arr;
        }
        var arr = [2,1,34,56,78,98,7,34];
        console.log(bubbleSort(arr),'bubble');
        /*  选择排序  */
        function selectSort(arr){
            for(let i=0;i<arr.length-1;i++){
                //将每次用i循环出来的当做一个比较值 过和j值逐一比较,使得i值成为剩下元素的最大值或最小值
                for(let j=i+1; j<arr.length-1;j++){
                    if(arr[i]<arr[j]){
                        var mid = arr[i];
                        arr[i] = arr[j];
                        arr[j] = mid;
                    }
                }
            }
            return arr;
        }
        console.log(selectSort(arr),'select');
        /*  快速排序  */
        var arr1 = [2,1,34,56,78,98,7,34];
        function quickSort(array){
            if(array.length<2){
                return array;
            }
            var left = [];
            var right = [];
            var point = array.shift();
            for(let i=0;i<array.length;i++){
                if(array[i]<point){
                    left.push(array[i]);
                }else{
                    right.push(array[i]);
                }
            }
            return quickSort(left).concat(point,quickSort(right));

        }
        console.log(quickSort(arr1),'quick')

猜你喜欢

转载自blog.csdn.net/wangyoushuai/article/details/81220476