先說結論:
電腦配置方面,主頻越高、核心數目越多,速度越快。其次,對於大陣列來說,可能由於記憶體較小,不得不使用虛擬記憶體(實際上位於硬碟上),導致速度急劇變慢(題主的70s就是由於記憶體較小導致的,推測題主的記憶體大概是4G/8G)。
MATLAB版本方面,一般版本越新,越有可能速度快.具體可以看我的回答,裡面總結了各個版本的主要更新內容。可以看到R2018b的更新就提高了sort函式的執行速度。
最後,如果陣列中重複的數越多,速度越快。
例如,一個長度為1e8的int64隨機陣列,如果陣列中數的取值範圍為[1,1e9](意味著幾乎沒有重複的數)。sort平均耗時大約1.9551秒。
如果陣列的取值範圍為[1,100](意味著重複的數很多)。sort平均耗時大約1.3068秒。
先說結論:
執行速度與電腦配置有關。除了CPU外,記憶體的大小也可能成為瓶頸。與MATLAB版本有關。版本越新,速度越快與陣列中數的重複程度有關。重複的數越多,sort排序越快。電腦配置方面,主頻越高、核心數目越多,速度越快。其次,對於大陣列來說,可能由於記憶體較小,不得不使用虛擬記憶體(實際上位於硬碟上),導致速度急劇變慢(題主的70s就是由於記憶體較小導致的,推測題主的記憶體大概是4G/8G)。
MATLAB版本方面,一般版本越新,越有可能速度快.具體可以看我的回答,裡面總結了各個版本的主要更新內容。可以看到R2018b的更新就提高了sort函式的執行速度。
如何評價 MATLAB R2019a?最後,如果陣列中重複的數越多,速度越快。
例如,一個長度為1e8的int64隨機陣列,如果陣列中數的取值範圍為[1,1e9](意味著幾乎沒有重複的數)。sort平均耗時大約1.9551秒。
如果陣列的取值範圍為[1,100](意味著重複的數很多)。sort平均耗時大約1.3068秒。