zoukankan      html  css  js  c++  java
  • 冒泡排序

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    <script>
    // 初级版本
    var arr = [5, 4, 3, 2, 1];
    // 外层控制比较的轮数(五个数比较四轮)
    for (var i = 0; i < arr.length - 1; i++) {
    // 内存循环 控制的是每轮比较多少次
    for (var j = 0; j < arr.length - 1; j++) {
    // 在每次比较的时候 如果前一向比后一项大,则交换位置
    if (arr[j] > arr[j + 1]) {
    var temp = arr[j];
    arr[j] = arr[j + 1];
    arr[j + 1] = temp;
    }
    }

    }
    console.log(arr);

    // 优化版本
    var arr = [5, 4, 3, 2, 1];
    var m = 0;//计数器 看优化后少循环了多少次
    // 外层控制比较的轮数(五个数比较四轮)
    for (var i = 0; i < arr.length - 1; i++) {
    // 内存循环 控制的始每轮比较多少次
    // 通过-i来优化一下每轮比较的次数 4-0 4-1 4-2 4-3
    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;
    }
    m++;
    }

    }
    console.log(arr);
    console.log(m);
    // 终极版本
    var arr = [5, 4, 3, 2, 1];
    var m = 0;//计数器 看优化后少循环了多少次
    var n=0 ;//看看优化的轮数效果如何
    // 外层控制比较的轮数(五个数比较四轮)
    for (var i = 0; i < arr.length - 1; i++) {
    // 关于轮数优化
    var onOff = true;
    // 内存循环 控制的是每轮比较多少次
    // 通过-i来优化一下每轮比较的次数 4-0 4-1 4-2 4-3
    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;
    // 如果有元素进来if ,说明没排好
    onOff=false;
    }
    m++;
    }
    n++;
    // 如果已经排好了
    if(onOff == true){
    break;//终止循环
    }

    }
    console.log(arr);
    console.log(m);
    // 练习
    var arr = [5, 4, 3, 2, 1,90];
    var inner = 0;
    var outer = 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;
    onOff=false;
    }
    inner++;
    }
    outer++;
    if (onOff == true) {
    break;//终止循环
    }
    }
    console.log(arr);
    console.log(inner);
    console.log(outer);
    </script>
    </body>
    </html>
  • 相关阅读:
    快递物流查询接口介绍
    DWR
    html网页自动跳转页面代码
    提升Apache网站访问速度的优化方法
    synchronized实现原理
    window下的hosts
    [转]BX9054: 各浏览器对 document.execCommand 方法的首参数可选值范围存在差异
    浏览器关闭或刷新事件--window.onbeforeunload
    浏览器,tab页显示隐藏的事件监听--页面可见性
    http 304
  • 原文地址:https://www.cnblogs.com/qwert1/p/7158068.html
Copyright © 2011-2022 走看看