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

    设置一标志性变量pos,用于记录每趟排序中最后一次进行交换的位置。由于pos位置之后的记录均已交换到位,故在进行下一趟排序时只要扫描到pos位置即可。

    //改进后算法如下:
    
    function bubbleSort2(arr) {
    
    console.time('改进后冒泡排序耗时');
    
    var i = arr.length-1; //初始时,最后位置保持不变
    
    while ( i> 0) {
    
    var pos= 0; //每趟开始时,无记录交换
    
    for (var j= 0; j< i; j++){
    
    if (arr[j]> arr[j+1]) {
    
    pos= j; //记录交换的位置
    
    var tmp = arr[j];
    
     arr[j]=arr[j+1];
    
    arr[j+1]=tmp;
    
    }
    
    i= pos; //为下一趟排序作准备
    
    }
    
    console.timeEnd('改进后冒泡排序耗时');
    
    return arr;
    
    }
    

      

    改进后的动态图

  • 相关阅读:
    ES6新特性总结
    Flask
    Flask
    Flask
    Flask
    Flask
    Flask
    Flask
    Linux
    Linux
  • 原文地址:https://www.cnblogs.com/Oopa/p/5909744.html
Copyright © 2011-2022 走看看