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>
  • 相关阅读:
    设计原则
    最小路径和--p64--动态规划
    ssm实现数据库关键信息的动态加载
    最大二叉树--p654--递归构造
    城市天际线--p807
    长url转短url--p535
    从中序与后序遍历中构造二叉树-p106--数组,二叉树遍历
    n皇后问题--p52--回溯
    Markdown(editormd)语法解析成HTML
    NFA的实现
  • 原文地址:https://www.cnblogs.com/qwert1/p/7158068.html
Copyright © 2011-2022 走看看