精华内容
下载资源
问答
  • 空间换时间
    千次阅读
    2022-04-06 19:25:09

    不全。慢慢补,大家可以评论一下。

    空间换时间:mipmap,对象池,复制算法(垃圾回收)。

    时间换空间:操作系统中的多级页表。

    更多相关内容
  • 由于系统资源是有限的,为了在有限的资源内,达成某些特定的性能目标,时间换空间或者空间换时间的方法。 时间换空间通常用于嵌入式设备,或者内存、硬盘空间不足的情况,通过使用牺牲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资源或者网络资源等,通过增加系统的内存消耗,来加快程序的运行速度。
    这种方法的典型应用就是缓存,缓存是一块额外的系统内存区,如果没有缓存,程序依然可以正常工作,但是在一般情况下,缓存中总是保存那些来之不易的数据,重新取得这些数据会花费大量的资源和时间,而通过缓存这块额外的内存,避免了频繁的资源消耗,加快了程序的运行速度。
    除了缓存外,一些算法中也可以使用这样的技术。

    展开全文
  • 空间换时间和时间换空间

    千次阅读 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));  
        }  
    }  

    展开全文
  • 空间换时间&时间换空间

    千次阅读 2020-06-05 11:50:04
    空间换时间&时间换空间 空间换时间的设计思想: 当内存空间充足的时候,为了追求代码的执行速度,可以舍弃对存储空间的要求,从而追求效率。 时间换空间的设计思想: 内存空间比较紧缺时,为了让程序稳定运行...

    空间换时间&时间换空间

    空间换时间的设计思想:

    当内存空间充足的时候,为了追求代码的执行速度,可以舍弃对存储空间的要求,从而追求效率。

    时间换空间的设计思想:

    内存空间比较紧缺时,为了让程序稳定运行, 可以社区时间,极大满足对存储空间的要求

    缓存实际上就是利用了空间换时间的设计思想, 如果我们把数据存储在硬盘上,会比较节省内存,但每次查找数据都要询问一个硬盘,会比较慢,但如果我们通过缓存技术,事先将数据加载在内存中, 虽然会比较耗费内存空间, 但是每次数据查询的速度就大大的提高了

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

    千次阅读 2019-05-20 23:46:58
    1.用map 函数可以减少时间复杂度 2.散列方法 1.开数组存下标(下标值为数据) 2.开数组 数组的date值存 数据值*数组范围+下标值(不改变数据大小关系 并且可以快速算出下标值和原始date值)(原始date=(数据值*数组...
  • 空间换时间的算法

    千次阅读 2020-09-28 13:21:26
    空间换时间的算法 大多算法考试都会有这个要求,就是在规定的时间复杂度内得到求解,这种情况下,一般多是需要复合遍历的内容,也即是时间复杂度在O(N2)和O(N3)等算法时间较高的情况下,此篇内容就是探讨一下一般...
  • mysql 以空间换时间专研

    千次阅读 2020-06-29 22:01:03
    提升mysql数据库执行效率是个永远的难题,...一、增加空间换时间 数据表 CREATE TABLE `sms` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `user_id` bigint(20) NOT NULL COMMENT '用户id', `tel` c
  • 【哲理】空间换时间

    千次阅读 2016-05-24 11:47:18
    时间和空间的关系,是霍金这种智商的人要研究的东西,我们只需要知道,在编程时,空间是可以换时间的,时间也是可以换空间的。李开复在他的自传《世界因你不同》中描述了他小时候在美国学校里的一个故事,老师出了道...
  • 代码时间换空间以及空间换时间

    千次阅读 2016-05-30 17:57:07
    void swap(int a, int b) { int c; c=a; a=b;b=a; } //--->空优 void swap(int a, int b) ...第一个,用空间换时间,swap中定义了c,就是在内存中又开辟了一个int内存空间,然后一次swap需要进行三次赋
  • 请列举一个软件中时间换空间或者空间换时间的例子: --->时优 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; }
  • 空间换时间的数据结构问题

    千次阅读 2013-04-05 18:58:06
    这个以空间换时间的数据结构是很Amusing的。首先应考虑初始化数组导致的直接结果是什么? 就是第一次访问某个元素的时候,这个元素的值是初始化后的值。由此就想到了,我们提出的算法应该能够实现:当我们第一次访问...
  • 性能优化:空间换时间

    千次阅读 热门讨论 2015-10-28 21:33:48
    时间复杂度和空间复杂度是可以相互转化的 。说通俗一点,就是: 对于执行的慢的程序,可以通过消耗内存(即构造新的数据结构)来进行优化。而消耗内存的程序,也可以多消耗时间来降低内存的消耗。   前者使用的...
  • 空间时间转换

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

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

    万次阅读 2010-11-03 22:44:00
    以前看过一篇文章“优化C代码常用的几招”,作者提到的第一招就是“以空间换时间”,还举了一个例子,由于比较经典,引用一下:计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序...
  • 引言: ...编写高效简洁的C语言代码,是许多软件工程师追求的目标。...第1招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决
  • 时间复杂度和空间复杂度的概念及各种算法的时间复杂度 及举例 算法的复杂度可分为俩种 一种时间复杂度 另一种是空间复杂度。 俩者的概念:时间复杂度是指执行这个算法所需要的计算工作量;而空间复杂度是指执行这个...
  • 空间换取时间的案例

    千次阅读 2018-07-22 15:25:29
    大O表示法: 算法效率严重依赖于操作(Operation)数量 在判断时首先关注操作... 操作数量的估算可以作为时间复杂的估算 O(5) = O(1) O(2n+1) = O(n) O(n2+n+1) = O(n2) O(3n3+1) = O(3n3) = O(n3) 习题: ...
  • 空间换时间的方法,遍历一次即可 #include<iostream> #include<string> using namespace std; void find(string a) { char s = NULL; int i = 0; int p[256] = { 0 }; for (i.
  • 时间和空间的关系,是霍金这种智商的人要研究的东西,我们只需要知道,在编程时,空间是可以换时间的,时间也是可以换空间的。  李开复在他的自传《世界因你不同》中描述了他小时候在美国学校里的一个故事,老师出...
  • 时间换空间的TCP

    千次阅读 2022-05-14 10:35:24
    原题应该是“以时间换空间的端到端”,但端到端可能不为人知,就说成TCP。 TCP天生不为性能而生,TCP天生节省带宽和内存,天生的时间换空间。为节省空间开销,宁可多几轮来回。TCP天生以多花点时间来确保“可靠传输...
  • 空间复杂度 常见时间复杂度对比 复杂度的OJ练习 什么是数据结构? 数据结构(Data Structure)是计算机存储、组织数据的方式。指相互之间存在一种或多种特定关系的数据元素的集合 什么是算法? 算法...
  • 时间复杂度和空间复杂度(C站最详细的)

    万次阅读 多人点赞 2021-07-28 07:48:16
    常见的时间复杂度计算举例三、空间复杂度 一、算法效率 ???? 如何衡量一个算法的好坏 ????递归代码 ———— 斐波那契数列的代码量十分简洁,所以这个算法是很优的?但其实使用递归是非常戳的,你会发现递归去计算...
  • 算法的时间复杂度和空间复杂度计算

    万次阅读 多人点赞 2018-09-27 20:22:44
    1、算法时间复杂度 1.1算法时间复杂度的定义:  在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作...
  • 算法复杂度分为时间复杂度和空间复杂度。 时间复杂度用于度量算法执行的时间长短;而空间复杂度则是用于度量算法所需存储空间的大小。 目录 时间复杂度 1.时间频度 2.计算方法 3.分类 空间复杂度 算法的时间...
  • 红黑树相较于原来的链表,多占用了一倍的空间,但是查询速度快乐一个数量级,属于空间换时间。 同时,链表转换红黑树也是一个耗时的操作。并且,一个效率高的哈希表,这个链表不应该过长。 所以,如果数组的很多元素...
  • 大地坐标与空间直角坐标转换

    万次阅读 多人点赞 2019-09-16 20:12:30
    1大地坐标换算到空间直角坐标 1P点投影到椭球面上,大地高为H 空间直角坐标换算到大地坐标 解算大地纬度的时候需要进行迭代计算, 保证前后两次迭代<e-10时,可保证计算精度达到0.0001″ aa ...
  • 理解分集首先要理解以下概念:全面解析:时延扩展与相干带宽、多普勒扩展与相干时间——无线通信基础 为什么采用分集 为了对抗无线信道的多径效应和多普勒效应,他们均会导致深度衰落。 为了克服深度衰落的影响,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,199,720
精华内容 479,888
关键字:

空间换时间

友情链接: HALF WAVE 1.rar