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

    合乎自然而生生不息。。。
  • 相关阅读:
    Java_jdbc 基础笔记之六 数据库连接 (PreparedStatement)
    Java_jdbc 基础笔记之五 数据库连接 (ResultSet)
    如何在Windows Server 2008服务器中把Tomcat启动程序添加到服务中
    WebService(axis2),整合springmvc
    shiro学习
    mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
    mysql几种关联的区别
    wzyxidian Scanner 与 Readable 的read()方法
    LINQ系列:LINQ to SQL Take/Skip
    LINQ系列:LINQ to SQL Concat/Union
  • 原文地址:https://www.cnblogs.com/samwu/p/2745610.html
Copyright © 2011-2022 走看看