M18 分期攤還預期的計算成本

2021-09-08 14:20:34 字數 356 閱讀 3651

1、基本思想就是:如果將來肯定要做某件事,並且這件事情耗時,提前把東西準備好,先做一部分。常用的使用場景有:

2、考慮乙個大的資料集合,集合中元素不斷變化。經常要取出裡面的最大值,正常的做法是:每次呼叫的時候,計算出最大值,這可能是乙個耗時的操作。既然是經常取出最大值,那我就實時(每次對集合增刪改的時候)更新最大值,需要的時候直接就返回最大值了。

3、考慮stl中的vector,vector有5個元素,假設vector的記憶體剛好容納5個元素,現在增加乙個元素。那就意味著必須分配一塊6個元素的記憶體,把原來的5個元素和新增的1個元素copy過來。這顯然效率很低。解決辦法是:預留一些記憶體。

4、較快的速度往往意味著較大的記憶體成本,需要在二者之間做出取捨。