• 冗余思想


    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);
        }
    }
     

    合乎自然而生生不息。。。
  • 相关阅读:
    HDU 2100 LoveKey
    HDU 2111 Saving HDU
    HDU 2132 An easy problem
    PAT 甲级 1081 Rational Sum (数据不严谨 点名批评)
    LWIP内存管理
    LWIP带UCOS操作系统移植
    LWIP协议栈2-
    LWIP协议栈1
    掌握所有IO口的外部中断
    熟悉相关电路,控制I/O口,且配置相关参数,LED,光敏,74LS164数码管
  • 原文地址:https://www.cnblogs.com/samwu/p/2745610.html
Copyright © 2020-2023  润新知