数组排序

2018-03-30  本文已影响0人  Clayten

1.逐个比较

将每个元素依次与之后的数进行比较,不符合就换位置

        var arr = [12,32,56,4,89,42,3,9];
        var num;
        function sortArr (arr) {
            for(var i = 0; i < arr.length; i++){
                for(var j =0; j < arr.length; j++){
                    if(arr[i]>arr[j]){
                        num=arr[i];
                        arr[i]=arr[j];
                        arr[j]=num;
                    }
                }
            }
            return arr
        }
        var arr1 = sortArr(arr);
        console.log(arr1);

2.冒泡排序(从小到大)

冒泡排序:相邻的二个元素进行比较,若位置不相符,则调换二者的位置。将最大的数放到最后一位上,每次调整一个数的位置,需要循环arr.length-1次(i为0),调整过后的位置不需要在调整,因此也不需要再比较,则每次循环需要比较的次数为(arr.length-1-i)次。

        var arr = [12,32,56,4,89,42,3,9];
        function sortArr (arr) {
            for(var i = 0; i < arr.length - 1; i++){
                for(var j = 0; j < arr.length-i-1; j++){
                    if(arr[j]>arr[j+1]){
                        var num=arr[j+1];
                        arr[j+1]=arr[j];
                        arr[j]=num;
                    }
                }
            }
            return arr
        }
        var arr1 = sortArr(arr);
        console.log(arr1);

3.sort排序

array.sort([function])没有参数会按照字母顺序对数组中的元素进行排序,有参数就会按照给的参数的方法进行排序,a,b。若a在b前,则(a-b)为false;若a在b后,则(a-b)为true;

    var arr = [12,23,5,2,45,22,36,1];
    function sortArr(arr){
        arr.sort(function (a,b) {
              return a-b 
        });
        return arr;
    }
    var arr1 = sortArr(arr);
    document.write(arr1);
上一篇 下一篇

猜你喜欢

热点阅读