冒泡排序

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>

    //求一组数中的所有数的和 和平均值
/*    var arr = [10,20,30,10];
    var len = arr.length;
    var sum = arr[0];
    var avg;
    for(var i =1;i<len;i++){
        sum += arr[i];
    }
    avg = sum/len;
    console.log(sum+"/"+len);
    console.log(avg);*/
/*    var arr = [11,2,31,1,4,134,1,41,42,131,434];
    var sum = arr[0];//获取到数组第一个索引的值
    var avg;
    for(var i=1;i<arr.length;i++){//因数组中第一个值已被取出 所以直接从索引为1开始 因此i=1;
        sum += arr[i];//求数组中元素的和
    }
    avg = sum/arr.length;//除以数组的长度 求取平均值
    console.log(sum+"/"+arr.length);
    console.log(avg);*/
    //求一组数中的最大值和最小值,以及所在位置
 /*   var arr = [1,2,4,5,6];
    var max = arr[0];//先取出索引为0的值 之后用于与后面的值比较
    var maxIndex = 0;//因max 赋值为索引为0的值 索引定义最大值得变量开始值也为0
    var min = arr[0];//先取出索引为0的值 之后用于与后面的值比较
    var minIndex = 0;//因min 赋值为索引为0的值 索引定义最大值得变量开始值也为0
    for(var i =0;i<arr.length;i++){//因数组第一个值已被取出  所以从1开始
        //(最大值)判断当max值小于arr[i]时,将arr[i]赋值给max 索引值等于i
        if(max<arr[i]){
            max = arr[i];
            maxIndex = i;
        }
        //(最小值)
        if(min>arr[i]){
            min = arr[i];
            minIndex = i;
        }

    }
   /!* console.log("最大值"+max);
    console.log("最大值索引"+maxIndex);
    console.log('最小值'+min);
    console.log('最小值索引'+minIndex);
*!/
    console.log("最大值"+max);
    console.log("最大值索引"+maxIndex);
    console.log("最小值"+min);
    console.log("最小值索引"+minIndex);*/
    //将字符串数组用|或其他符号分割
/*    var arr = ["流水","蜻蜓","浮云"];
    var str = arr[0];
    var part = '|';
    for(var i =1;i<arr.length;i++){
        str+=part+arr[i];
    }
    console.log(str);*/
/*    var arr = ['数','时刻是经典款','随便'];
    var str = arr[0];
    var part = '❤';
    for(var i =1;i<arr.length;i++){
        str += part + arr[i];
    }
    console.log(str);*/
    //将数组中值为0的去掉,不为0的存入新数组
/*    var arr =  ["我的",0,0,0,"他的",1,2,3,0,"谁的"];
  /!*  alert(arr);
    alert(arr.length);*!/
    var newArr = [];
    for(var i=0;i<arr.length;i++){
        if(arr[i]!=0){
            newArr[newArr.length] = arr[i];
        }
    }
    console.log(newArr);*/
/*    var arr =  ["我的",0,0,0,"他的",1,2,3,0,"谁的"];
    var newArr = [];
    for(var i=0;i<arr.length;i++){
        if(arr[i]!=0){
            newArr[newArr.length] = arr[i];
        }
    }
    console.log(newArr);*/
    /*
    var arr = [1,2,4,23,4,9,5,8,3,0,39,0];
    var newArr = [];
    for(var i =0;i<arr.length;i++){
        if(arr[i]!=0){
            newArr[newArr.length] = arr[i];
        }
    }
    console.log(newArr);*/
    //翻转数组
/*    var arr = [1,2,4,23,4,9,5,8,3,0,39,0];
    console.log(arr);
    var newArr = [];
    for(var i = arr.length-1;i>=0;i--){
        newArr[newArr.length] = arr[i];
    }
    console.log(newArr);*/
    //冒泡排序,从小到大
  /*  var arr = [1,2,4,23,4,9,5,8,3,0,39,0];
    console.log(arr);
    var m = 0;
    var n = 0;
    //比较的轮数
    for(var i=0;i<arr.length-1;i++){
        //控制比较结束之后直接跳轮数的开关
        var onOff = true;
        //比较的次数循环,且每轮循环之后都会有元素不再比较所以减i
        for(var j =0;j<arr.length-1-i;j++){
           //判断什么时候进行位置调换
            if(arr[j]>arr[j+1]){
                var temp = arr[j];//将上一个变量存起来
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                    //默认执行继续
                    onOff = false;
            }
            n++;
        }
        m++;
        if(onOff){
            break;
        }
    }
    console.log(arr);*/
    var arr = [1,2,345,3,25,56,77,89,990,0];//定义一个数组
    console.log(arr);
    var m = 0;//比较次数的轮数
    var n = 0;//比较的次数
    //第一次循环控制比较次的轮数
    for(var i =0;i<arr.length-1;i++){
        //定义一个开关 控制比较次数的判断不再执行时跳数比较循环
        var onOff = true;
        //定义比较次数的循环
        for(var j=0;j<arr.length-1-i;j++){
            //判断什么时候进行位置互换
            if(arr[j]<arr[j+1]){
                var temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                    //开关为false 比较继续
                    onOff = false;
            }
            n++;//比较次数自增
        }
        m++;//比较轮数自增
        if(onOff){
            break;
        }
    }
    console.log("轮数"+m);
    console.log("次数"+n);
    console.log(arr);


</script>
</body>
</html>
原文地址:https://www.cnblogs.com/lcf1314/p/5551282.html