• 冒泡排序


    基本过程

    1. 遍历数组,确定冒泡次数

    2. 内层遍历数组,将相邻元素进行比较(与外层无关),按序交换位置,一次内层遍历后,最小元素将移到最前面

    3. 多次冒泡后,数组排序完成

    JavaScript实现

    function fBubbleSort(arr){
        var len = arr.length,temp = 0;
        for(var i=0;i<len-1;i++){
            for(var j = len-1;j > i;j--){
                if(arr[j] < arr[j-1]){
                    temp = arr[j];
                    arr[j] = arr[j-1];
                    arr[j-1] = temp;
                }
            }
        }
        return arr;
    }

    冒泡优化

    在内层遍历中,若无交换发生,则说明后面元素已经有序,无需再排,直接跳出外层循环,结束即可。

    优化版

    function fBubbleSort(arr){
        var len = arr.length,temp = 0,exchange = false;
        for(var i=0;i<len -1;i++){
            exchange = false;
            for(var j = len -1;j > i;j--){
                if(arr[j] < arr[j-1]){
                    temp = arr[j];
                    arr[j] = arr[j-1];
                    arr[j-1] = arr;
    
                    exchange = true;
                }
            }
            if(!exchange){
                break;
            }
        }
    }
  • 相关阅读:
    hdoj 2586 How far away?(最近公共祖先)
    poj 1330 A-Nearest Common Ancestors
    心形图
    B1928 日期差值
    B1022 D进制的A+B
    B1009 说反话
    hihocoder 1498 签到
    51Nod 1082 与7无关的数
    51Nod 1015 水仙花数
    51Nod 1283 最小周长
  • 原文地址:https://www.cnblogs.com/mengff/p/6155298.html
Copyright © 2020-2023  润新知