zoukankan      html  css  js  c++  java
  • 冗余思想

    1.代码逻辑冗余

    如果说代码记忆度为性,代码执行效率为价,不追求完美,而追求性价比的代码。

    那么,

     function bubble_sort(array){

        var i,j,temp,array_length = array.length;
        for(i=0; i<array_length; i++){//第n次
            for(j=0; j<array_length; j++){//筛选出最大值,调换。虽然有重复比较,但是上一次循环已经得出最大值,所以不怕重复比较。
                if(array[i] < array[j]){
                    temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
        return array;
    }

    function bubble_sort2(array){
        var i,j,temp,array_length = array.length;
        for(i=array_length; i>0; i--){//第一层循环每次少一次
            for(j=0; j<i-1; j++){//两两前后互换
                if(array[j+1] < array[j]){
                    temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }
        return array;
    }

    bubble_sort比bubble_sort2更容易记住,但bubble_sort2比bubble_sort执行效率更高。

    性价比来说,bubble_sort比bubble_sort2更高。如果不苛求性能,而大多数情况是不苛求性能,那么我们用bubble_sort何乐而不为呢。

    也就说,代码逻辑冗余,让计算机多做一些没必要的计算,腾出人类大脑的记忆空间。

    2.数据冗余

    三范式减少了数据冗余,意味着跨表查询将会频繁,降低一些性能。以CPU运算时间换取了硬盘的存储空间。增加些数据冗余,则存储空间换取CPU运算时间。

    3.思路冗余

    排序不仅有冒泡排序,还有快速排序等。它们都能实现,从小到大的排序效果。区别在于,特定条件下的代码执行效率。 

    PS:代码逻辑冗余的example

    1.Tab效果的js代码 

    function myTab(anchor_arry,body_array){
        // 思路:先全部隐藏,再只显示一个
        function display_all_none(){
            for(var j=0; j<body_array.length;j++){
                body_array[j].style.display = "none";
             }
        }
         
        for(var i=0; i<anchor_arry.length;i++){
            anchor_arry[i].onclick = (function(i){
                return function(){
                    display_all_none();
                    body_array[i].style.display = "block";
                };           
            })(i);
        }
    }
     

    合乎自然而生生不息。。。
  • 相关阅读:
    湘湖的雪
    Lua 如何调用C打包的动态库
    自己制作一个USB自动挖矿器
    二十五块DIY 带屏幕可远程的温湿度传感器
    来看下,C# WebService WSDL自动生成代码,数组参数的BUG。。。ArrayOfString
    记一次非常规方法对接硬件设备(Grason Stadler GSI 61)
    京享值超8万的京东钻石用户告诉你套路是这样的
    C# 显示纯文本对齐封装(控制显示字体长度)
    [开源] C# 封装 银海医保的接口
    [开源]使用C# 对CPU卡基本操作封装
  • 原文地址:https://www.cnblogs.com/samwu/p/2745610.html
Copyright © 2011-2022 走看看