精华内容
下载资源
问答
  • 空间换时间时间换空间

    千次阅读 2018-06-17 15:22:55
    考虑实际情况,可能会用“空间换时间”或者用“时间换空间”。以数组排序为例。很明显,冒泡排序,通过新增一个中间变量,用空间换时间,执行速度快。而异或运算没有引入新的变量。package com.asin.java.csdn; ...
    算法有两个指标:运行时间、内存消耗。
    考虑实际情况,可能会用“空间换时间”或者用“时间换空间”。
    以数组排序为例。很明显,冒泡排序,通过新增一个中间变量,用空间换时间,执行速度快。而异或运算没有引入新的变量。
    package com.asin.java.csdn;  
      
    import java.util.Arrays;  
      
    public class AlgorithmCompare {  
        public static void main(String[] args) {  
      
            int[] num = { 2, 5, 1, 7, 3, 8, 6, 9, 0 };  
      
            long start = System.nanoTime();  //纳秒  
      
            // sortThird(num); // 191999  
            bubbleSort(num);   //   5531  
      
            long end = System.nanoTime();  
      
            System.out.println(end - start);  
        }  
      
        /** 
         * 冒泡排序,空间换时间 
         */  
        public static void bubbleSort(int[] a) {  
            int n = a.length;  
            for (int i = 0; i < n - 1; i++) {  
                for (int j = 0; j < n - 1; j++) {  
                    if (a[j] > a[j + 1]) {  
                        int temp = a[j];  
                        a[j] = a[j + 1];  
                        a[j + 1] = temp;  
                    }  
                }  
            }  
        }  
      
        /** 
         * 异或运算,时间换空间 
         */  
        private static void sortThird(int[] num) {  
            for (int i = 1; i < num.length; i++) {  
                int j = i;  
                while (true) {  
                    if (j > 0 && num[j] < num[j - 1]) {  
                        // change  
                        num[j] = num[j] ^ num[j - 1];  
                        num[j - 1] = num[j] ^ num[j - 1];  
                        num[j] = num[j] ^ num[j - 1];  
                        j--;  
                    } else {  
                        break;  
                    }  
                }  
            }  
            System.out.println("sortThird:" + Arrays.toString(num));  
        }  
    }  

    展开全文
  • 时间换空间 由于系统资源是有限的,为了在有限的资源内,达成某些特定的性能目标,时间换空间或者空间换时间的方法。 时间换空间通常用于嵌入式设备,或者内存、硬盘空间不足的情况,通过使用牺牲CPU的方式,获得...

    时间换空间

    由于系统资源是有限的,为了在有限的资源内,达成某些特定的性能目标,时间换空间或者空间换时间的方法。
    时间换空间通常用于嵌入式设备,或者内存、硬盘空间不足的情况,通过使用牺牲CPU的方式,获得原本需要更多内存或者硬盘空间才能完成的工作。
    下面是一个非常简单的时间换空间的算法,实现了a,b两个变量值的交换。交换两个变量的方法是使用一个中间变量,而引入额外的变量,而引入额外的变量意味着要使用更多的空间。采用下面的方法,则可以免去中间变量,而达到变量交换的目的,其代价是引用更多的CPU运算。

    public class Demo {
    	public static void main(String[] args) throws Exception {
    		int a=3;
    		int b=2;
    		b=a+b;
    		a=b-a;
    		b=b-a;
    		System.out.print(a+"----"+b);
    	}
    }
    结果:
    2----3
    

    性能优化的关键在于掌握各部分组件的性能平衡点,如果系统CPU资源有空闲,但是内存使用紧张,便可以使用用时间换空间的策略,达到整体的性能改良,反之,CPU资源紧张,内存资源有空闲,则可以使用空间换时间的策略,提升整体性能。

    空间换时间

    与时间换空间的方法相反,空间换时间则是尝试使用更多的内存或者磁盘空间换取CPU资源或者网络资源等,通过增加系统的内存消耗,来加快程序的运行速度。
    这种方法的典型应用就是缓存,缓存是一块额外的系统内存区,如果没有缓存,程序依然可以正常工作,但是在一般情况下,缓存中总是保存那些来之不易的数据,重新取得这些数据会花费大量的资源和时间,而通过缓存这块额外的内存,避免了频繁的资源消耗,加快了程序的运行速度。
    除了缓存外,一些算法中也可以使用这样的技术。

    展开全文
  • 算法的好坏有两个指标:需要的内存空间(可以 理解为运行代码需要的内存空间),代码运行的时间(可以简单的理解为代码需要执行的步数)程序的设计要不就是时间换空间,要不就是用空间换时间。并且时间空间是...

    算法的好坏有两个指标:需要的内存空间(可以 理解为运行代码需要的内存空间),代码运行的时间(可以简单的理解为代码需要执行的步数)

    程序的设计要不就是时间换空间,要不就是用空间去换时间。并且时间和空间是可以进行相互转化的:对于执行的慢的程序,可以通过消耗内存(即构造新的数据结构)来进行优化。而消耗内存的程序,也可以多消耗时间来降低内存的消耗。 

    下面举个简单的例子:比如要写一个两个值互换的算法

    //时间换空间
    int a = 5;
    int b = 10;
    a = a+b;//得到a值为15
    b = a-b;//得到b值为5
    a = a-b;//得到a值为10
    
    //空间换时间
    int c = 5;
    int d = 10;
    int e = c;//得到e为5
    c= d;//得到c值为10
    d = e;//得到d值为

    结论:第一个a和b互换值的算法:总共进行了3次加减运算和三次赋值运算,能够把a和b的值进行互换,没有开辟多余的内存空间。c和d互换的时候,多开辟了一个内存空间存储e,但是这样只需要进行三次赋值运算就可以把c和d的值进行互换。所以第一个算法空间效率高,时间效率低,第二个算法空间效率低,时间效率高,

    我们在程序当中,请求分页,请求分段,都属于用时间去换空间。在项目当中使用各种缓存技术,都属于利用空间去换时间。

    展开全文
  • 代码时间换空间以及空间换时间

    千次阅读 2016-05-30 17:57:07
    void swap(int a, int b) ...//根据以上的题意解释一下以时间换空间,和以空间换时间 第一个,用空间换时间,swap中定义了c,就是在内存中又开辟了一个int内存空间,然后一次swap需要进行三次赋
    void swap(int a, int b)
    {
    	int c; c=a; a=b;b=a;
    }
    //--->空优 
    void swap(int a, int b)
    {
    	a=a+b;b=a-b;a=a-b; 
    }
    //根据以上的题意解释一下以时间换空间,和以空间换时间


    第一个,用空间换时间,swap中定义了c,就是在内存中又开辟了一个int内存空间,然后一次swap需要进行三次赋值运算。
    
    第二个,用时间换空间,swap中没有额外的定义变量,也就是没有内存的开辟。但是一共进行了3次加(减)法运算和三次赋值运算。
    运算次数比第一个多,所以时间效率低,但是没有开辟额外内存,所以空间效率高。

    展开全文
  • 空间时间转换

    千次阅读 2018-07-27 16:29:29
    空间时间之间的转换无非就两种方式即:时间换空间空间换时间。 当年蒋介石就完成过空间换时间,以大量的土地换取自己喘息的时间。 在实际开发中时间 = 运行时间空间 = 运行内存,所以空间时间的转换其实也...
  • 空间换时间方法总结

    千次阅读 2019-05-20 23:46:58
    1.用map 函数可以减少时间复杂度 2.散列方法 1.开数组存下标(下标值为数据) 2.开数组 数组的date值存 数据值*数组范围+下标值(不改变数据大小关系 并且可以快速算出下标值和原始date值)(原始date=(数据值*数组...
  • 请列举一个软件中时间换空间或者空间换时间的例子: --->时优 void swap(int a,int b) { int c; c=a; a=b; b=c; } --->空优 void swap(int a,int b) { a=a+b; b=a-b; a=a-b; }
  • 空间换时间,轻松提高性能100倍

    千次阅读 2017-02-24 13:04:24
    空间换时间的最常用场景就是缓存,为了提高性能可以设置不同类型的缓存
  • 空间换时间经典算法

    千次阅读 2010-11-03 22:44:00
    以前看过一篇文章“优化C代码常用的几招”,作者提到的第一招就是“以空间换时间”,还举了一个例子,由于比较经典,引用一下:计算机程序中最大的矛盾是空间时间的矛盾,那么,从这个角度出发逆向思维来考虑程序...
  • 空间换时间的数据结构问题

    千次阅读 2013-04-05 18:58:06
    这个以空间换时间的数据结构是很Amusing的。首先应考虑初始化数组导致的直接结果是什么? 就是第一次访问某个元素的时候,这个元素的值是初始化后的值。由此就想到了,我们提出的算法应该能够实现:当我们第一次访问...
  • 理解分集首先要理解以下概念:全面解析:时延扩展与相干带宽、多普勒扩展与相干时间——无线通信基础 为什么采用分集 为了对抗无线信道的多径效应和多普勒效应,他们均会导致深度衰落。 为了克服深度衰落的影响,...
  • NAT(地址转换技术)详解

    万次阅读 多人点赞 2018-03-17 16:31:35
    NAT技术的工作原理和特点 静态NAT 动态NAT NAT重载(经常应用到实际中) NAT技术的优缺点 优点 缺点 NAT穿越技术 应用层网关(ALG) ALG的实际应用 NAT技术的未来 参考文献 NAT产生背景 今天,无数...
  • 算法的时间复杂度和空间复杂度-总结

    万次阅读 多人点赞 2013-09-20 16:01:26
    算法的时间复杂度和空间复杂度 1、时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的...
  • 计算机视觉工作者们,总是希望能“看清”繁华世界的每个像素点,但是却发现分辨率的极限,是他们绕不过去的坎。今天就来和大家聊一聊分辨率以及超分辨图像重建 ...时间分辨率性能决定了视频输出的帧率,...
  • 压缩空间技术 稀疏数据结构

    千次阅读 2013-12-29 23:31:04
    压缩空间技术的使用往往需要结合时间复杂度来考虑。 Jon Bentley大师在《Programming Pearls,编程珠玑》中写了两种压缩空间技术:数据空间压缩技术和编码空间技术。 数据空间压缩技术: 不保存...
  • 中国空间技术研究院

    千次阅读 2011-10-26 22:12:21
    中国空间技术研究院(暨航天五院)成立于1968年2月20日,隶属中国航天科技集团公司。经过40年的发展,已成为中国主要的空间技术及其产品研制基地,是中国空间事业最具实力的骨干力量。主要从事空间技术开发、航天器...
  • GIS空间索引技术

    千次阅读 2011-01-18 13:11:00
    地理空间索引技术和方法是GIS的关键技术。是快速高效查询、检索和显示地理空间数据的重要指标。 常用的空间索引技术介绍和比较:  网格空间索引、四叉树空间索引和R树系列空间索引最为常见。 ...
  • 而PET成像技术时间分辨率一般是几分钟,略差于BOLD fMRI,而空间分辨率是厘米级的,略优于EEG和MEG。在fMRI技术中,ALS fMRI(arterial spin labeling fMRI,动脉自旋标记fMRI)在时间稳定性方面非常好,即它可以...
  • 我们在这篇博客中主要来介绍一下时间复杂度和空间复杂度的区别和联系。我们也将通过一个万年历的例子来分析二者如何平衡,如何取舍。 虽然随着科学技术的发展,计算机硬件的性能已经发生了天翻地覆的变化。我们再也...
  • QQ空间技术架构之深刻揭秘

    千次阅读 2016-04-20 09:48:08
    QQ空间技术架构之深刻揭秘 来源: 腾讯大讲堂 发布时间: 2012-05-17 17:24 阅读: 7822 次 推荐: 4 [收藏]   QQ 空间作为腾讯海量互联网服务产品,经过近七年的发展,实现了从十万级到亿级...
  • 据说这个某个公司的招聘题,某个追求时间空间极限的bt程序员某个时间脑袋灵光一闪,搞出来这些个所谓的nb算法,然后再自豪地把它们呈给那些技术面试官,让他们用这些来测测我们这些普通程序员的脑袋是否灵光。...
  • AIX 换页空间技术细节

    千次阅读 2007-11-28 16:25:00
    换页空间用来后备实际内存。实际内存分成若干4K大小的段,称为页帧(frame),硬盘上换页空间的每个...系统则在最近没有被引用的页帧当中查找若在实际内存中找到合适的页帧时,如果其中的数据已被修改,系统将数据“
  • 网络空间安全态势感知技术

    千次阅读 2019-06-07 23:49:52
    网络空间安全态势感知技术 1.1网络安全的重要性 经济飞速发展的同时,科学技术也在不断地进步,网络已经成为当前社会生产生活中不可或缺的重要组成部分,给人们带来了极大的便利。与此同时,网络系统也遭受着一定的...
  • 关于计算时间复杂度和空间复杂度

    万次阅读 多人点赞 2016-09-04 00:09:45
    相信学习编程的同学,或多或少都接触到算法的时间复杂度和空间复杂度了,那我来讲讲怎么计算。  常用的算法的时间复杂度和空间复杂度 一,求解算法的时间复杂度,其具体步骤是:  ⑴ 找出算法中的基本语句;  ...
  • 通常,对于一个给定的...算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。 算法执...
  • 中国空间技术研究院(航天五院)

    万次阅读 2016-10-09 21:15:41
    中国空间技术研究院(航天五院)是我国最早从事卫星研制的高科技单位,也是目前国内最具实力的卫星、飞船主要研制基地。建院38年来,已成功发射各类卫星70余颗及6艘飞船。2003年10月由中国空间技术研究院抓总研制的...
  • 时间序列模型之相空间重构

    万次阅读 多人点赞 2015-10-10 13:20:21
    时间序列模型之相空间重构
  • 1 光谱分辨率、空间分辨率、时间分辨率 2 全色图像、多光谱图像、高光谱图像 2.1 全色图像 2.2 多光谱图像 2.3 高光谱图像 参考资料 1 光谱分辨率、空间分辨率、时间分辨率 遥感(Remote Sensing),可以理解为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 742,735
精华内容 297,094
关键字:

时间换空间的技术