• 用原生JS写冒泡排序及动画演示


    法一(自定义函数)

    请点击:冒泡排序动画演示(遍历多少行、每行交换多少次)

    /*步骤构思: 1、声明命名函数(形参数组)
                2、for设置外循环, 控制遍历多少趟
                3、for设置内循环, 控制遍历交换多少次
                4、if设置满足两两比较条件, 索引号进行两两和临时变量的交换
                5、return返回值
                6、变量储存=调用函数(实参数组)
                7、 控制台打印变量输出  */
    
    function bubble(arr) {
        for (var i = 0; i < arr.length; 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;
                }
            }
        }
        return arr;
    }
    var arr = bubble([100, 26, 4, 13, 200, -21, 59]);
    console.log(arr);  // [-21, 4, 13, 26, 59, 100, 200]
    

    法二(内置对象)

    function bubSort(newArr) {
        /*  注意:内置的对象方法sort()会调用toString()转型,即比较字符串
            解决:sort()接收一个比较函数compare来解决字符串长度一样的数字大小比较 */
        function compare(value1, value2) {
            if (value1 < value2) {
                return -1;
            } else if (value1 > value2) {
                return 1;
            } else {
                return 0;
            }
        }
        newArr.sort(compare); // 对象.sort()是一个内置在JS可以直接被调用的方法
        return newArr;
    }
    var newArr = bubSort([100, 200, 26, 13, 4, 87, -66, 59]);
    console.log(newArr); //[-66, 4, -13, 26, 59, 87, 100, 200]
    


    作者:MaricoCheung
    出处:http://www.cnblogs.com/MaricoCheung/
    ——有心人做有心事哦,晚安EmilyChen!

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

     
  • 相关阅读:
    [转]: 浅谈Java中的equals和==
    易忘易混的java基本概念
    mysql查看锁表锁进程
    [转] Python 包管理工具解惑
    双网卡单网关的路由问题
    [转]火狐 SSL 收到了一个弱临时 Diffie-Hellman 密钥
    Linux中如何进入减号开头的目录中
    zabbix的一点记录
    从图形界面配置zabbix
    调用API自动配置zabbix version 3.0
  • 原文地址:https://www.cnblogs.com/MaricoCheung/p/13752387.html
Copyright © 2020-2023  润新知