zoukankan      html  css  js  c++  java
  • 用原生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!

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

     
  • 相关阅读:
    86. Partition List
    2. Add Two Numbers
    55. Jump Game
    70. Climbing Stairs
    53. Maximum Subarray
    64. Minimum Path Sum
    122. Best Time to Buy and Sell Stock II
    以场景为中心的产品设计方法
    那些产品经理犯过最大的错
    Axure教程:如何使用动态面板?动态面板功能详解
  • 原文地址:https://www.cnblogs.com/MaricoCheung/p/13752387.html
Copyright © 2011-2022 走看看