zoukankan      html  css  js  c++  java
  • 数组排序

    1、         冒泡排序,将数组从小到大排序,即从数组左边开始相邻两个元素比较大小和交换位置。

    <script>
    //        冒泡排序,从小到大。
             var arr = [41, 21, 12, 52, 67, 32, 23];
            var outer = 0, inner = 0;
            for (var j = 0; j < arr.length - 1; j++) {
    //            声明flag作用是判断数组内元素是否从小到大排列好,是就跳出当前循环。
                var flag = true;
    //            i < arr.length -1变为i < arr.length - 1 - j,此处优化去除了一些重复操作。
                for (var i = 0; i < arr.length - 1 - j; i++) {
                    if (arr[i] > arr[i + 1]) {
                        var temp = arr[i + 1];
                        arr[i + 1] = arr[i];
                        arr[i] = temp
                        flag = false;
                    }
                    inner++;//内层循环次数
                }
                if (flag) {
                    break;
                }
                outer++;//外层循环次数
            }
            console.log(arr);
            console.log(inner);
            console.log(outer);
        </script>

    2、         选择排序,将数组从小到大排序,即依次取出数组中最小值,然后依次放入新的数组中并将它们从原数组中去除掉。

    <script>
    //        选择排序,从小到大
            var arr = [65,97,76,13,27,49,58 ];
            var newArr = [];
            for(var i=0;i<arr.length;i++) {
                var min = arr[0];
                var minIndex = 0;
                for(var j=0;j<arr.length;j++) {
                    if(min > arr[j]) {
                        min = arr[j];
                        minIndex = j;
                    }
                }
                newArr[newArr.length] = min;
                arr[minIndex] = 100;//相当于将arr中的最小值去除
            }
            console.log(newArr);
        </script>

    3、         插入排序

    <script>
            var arr = [5, 4, 6, 2, 1];
            //        从第二个开始往后
            for (var i = 1; i < arr.length; i++) {
                var temp = arr[i];
    //            从第i个往前 只要比你小 就让你往后移动 让第i个插到合适位置
                for (var j = i - 1; j >= 0 && arr[j] > temp; j--) {
                    arr[j + 1] = arr[j];
    //                console.log("j现在是" + j);
    //                console.log("内循环" + arr[j + 1]);
    //                console.log("内循环" + arr);
                }
                arr[j + 1] = temp;
    //            console.log("j现在是" + j);
    //            console.log("外循环" + arr[j + 1]);
    //            console.log("外循环" + arr);
            }
            console.log(arr);
        </script>

    4、         运算符的优先级,优先级从高到底

    a)     ()  优先级最高

    b)    一元运算符  ++   --   !

    c)     算数运算符  先*  /  %   后 +   -

    d)     关系运算符  >   >=   <   <=

    e)     相等运算符   ==   !=    ===    !==

    f)                 逻辑运算符 先&&   后|| 

    5、         number类型的浮点数在算数计算时不准确,如var result = 0.1 + 0.2;的计算结果不是0.3,而是0.30000000000000004。不要判断浮点数是否相等,不过判断范围还是可以的。

    别给未来太多想象,多给今天一点力量。
  • 相关阅读:
    HttpURLConnection中使用代理(Proxy)及其验证(Authentication)
    Java获取随机数的几种方法
    史上最全的java随机数/字符串生成算法(转)
    httpClient中的三种超时设置小结
    几个性能测试工具
    硬件知识
    北风风hadoop课程体系
    IT大数据服务管理高级课程(IT服务,大数据,云计算,智能城市)
    .net framework client profile
    Resharper中注释代码的快捷键
  • 原文地址:https://www.cnblogs.com/Jerry-MrNi/p/6371870.html
Copyright © 2011-2022 走看看