• 冒泡排序


    <!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>
  • 相关阅读:
    实战篇之实现 OutLook 中以 EDM 形式发送通知邮件
    ASP.NET MVC5 之路由器
    ASP.NET MVC5 之数据迁移
    说不出的烦
    ASP.NET MVC5 之 Log4Net 的学习和使用
    读取配置文件参数和文件路径
    序列化和反序列化示例
    面向对象之封装
    面向对象4之常用的乱七八糟
    面向对象三之继承和派生
  • 原文地址:https://www.cnblogs.com/qwert1/p/7158068.html
Copyright © 2020-2023  润新知