js数组排序(冒泡排序,双重for循环排序,sort方法排序)

一、冒泡排序(Bubble Sort),是计算机科学领域比较简单的排序算法

        原理:是相邻的两个数字进行比较,按照从小到大或从大到小的顺序进行交换,这样一趟过去后,最大或最小的只会被交换到数组的末尾,然后再进行下一轮对比,把最大或最小的值会被交换到数组的倒数第二位“以此类推数组,条件不满足结束循环对比结束。

代码案例展示:

 var arr = [1, 20, 3, 100,0,50];
    //对比多少圈
    for (var i = 0; i < arr.length; i++) {//比较几次
        //拿到arr数组中的数据
        for (var j = 0; j < arr.length - 1-i; j++) {
            //数组数据相邻的两个数进行比较”“判断哪个数比较大”
            if (arr[j] > arr[j + 1]) {
                //console.log(arr[j] + "-----------" + arr[j + 1]);
                //换值  谁大换后面去
                var temp = arr[j + 1]; //接受比较后的最小数3
                arr[j + 1] = arr[j];
                arr[j] = temp; 
            }
        }
    }
    console.log(arr);

二、双重for循环排序(通俗)

       原理:将第一位依次与后面的元素进行比较,得到最小火最大值,与第一位交换,再次拿第二位依次与后面的元素进行对比获取第二个最小火最大数,与第二位进行位置交换,重复执行,直到外层循环添加不满足交换完毕,排序完成。

代码案例展示:

var arr = [1,20,3,100,0,50];
    //拿到对比的数据
    for(var i = 0;iarr[j]){
                //不是和对比的元素进行位置交换
                min = arr[j];
                minIndex = j;
            }
        }
        //真正的交换
        arr[minIndex] = arr[i]; 
        arr[i] = min;
    }
    console.log(arr);

三、sort()方法(便捷)

       原理:根据冒泡排序规则进行排序,两两对比,把最小或最大值交换到数组的末尾,根据返回值判断是否交换“若值大于0(y > x,则x和y进行位置交换),若值小于0(y < x,则x和y不进行位置交换).

代码案例展示:

 var arr = [1,20,3,100,0,50];
    //升序(从小到大)
    arr.sort((x,y)=>{
        return x - y;
    });
    //降序(从大到小)
    arr.sort((x,y)=>{
        return y - x;
    })
    //原理:两两对比,返回正值交换,返回负值/相同不交换。
    arr.sort((x,y)=>{
        if(x>y){
            return 1;//需要交换位置
        }else if(x

                                                  对您有用的话,动动小手来个赞赞

你可能感兴趣的:(javascript,javascript,前端,开发语言)