zoukankan      html  css  js  c++  java
  • 冒泡排序之基础优化

    • 普通版本
    function doubleSort(arr) {
      let len = arr.length - 1;
      for(let i=0; i<arr.length; i++) {   // 第一层循环遍历总次数
        for(let j=0; j<len-i; j++) {    // 第二层循环 从左往右 j 与 j + 1 数值比较 
          if(arr[j] > arr[j+1]) {
             let temp = arr[j];
            arr[j] = arr[j+1]
            arr[j+1] = temp;
          }
        }
      }
      return arr;
    }
    • 优化版本(一)
    function doubleSort(arr) {
        let len = arr.length - 1;
        let isExchange;            // 增加标志位字段,判断后面对比是否进行数值交换,如果没有交换,代表是有序,否则代表无序
        for(let i=0; i<arr.length; i++) {
            isExchange = true;       // 每次循环开始,都是为 true, 交换之后才置为 false
            for(let j=0; j<len; j++) {
                if(arr[j] > arr[j+1]) {
                    let temp = arr[j];
                    arr[j] = arr[j+1]
                    arr[j+1] = temp;
                    isExchange = false;
                }
            }
            if(isExchange) {    // 如果有序后面就不要循环对比了,直接跳出
                break;
            };
        }
        return arr;
    }
    • 优化版本(二)
    function doubleSort(arr) {
        let len = arr.length - 1;
        let isExchange,sortLine;    //  记录最后一次交换的位置,减少下次内部循环的次数
        for(let i=0; i<arr.length; i++) {
            isExchange = true;
            for(let j=0; j<len; j++) {
                if(arr[j] > arr[j+1]) {
                    let temp = arr[j];
                    arr[j] = arr[j+1]
                    arr[j+1] = temp;
                    isExchange = false;
                    sortLine = j;
                }
            }
            len = sortLine;
            if(isExchange) {
                break;
            };
        }
        return arr;
    }

     高级版本优化 之 鸡尾酒排序,期待 !

  • 相关阅读:
    usaco contest
    chapter 2.getting started
    几种常见排序
    [usaco]Programming Contest Problem Types
    回溯实现组合问题
    第二章:循环结构程序设计
    第一章:程序设计入门
    第三章:数组和字符串
    数据库设计(一对一、一对多、多对多)
    linux与windows回车换行符的区别
  • 原文地址:https://www.cnblogs.com/strivegys/p/13255950.html
Copyright © 2011-2022 走看看