N年沒看java了,看個東西還是得搜索點東西,本文依舊粉絲可見,
問題來源:scores排序問題
java中有亂數生成嗎?java.util.Random,
Math.random();//[0,1)
先用這個吧,固定在[0,1)范圍內,
java陣列1萬*10萬就不行了??
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
暫且不管了這個錯,
直接多次sort即可,對百萬的陣列a,1萬次排序17s,也可以了,對比下python的np.argsort 【Time 1 生成亂數的時間】
Time 1:47
Time 2:17015
//java單位ms
而py 100次都要這么多,17.56885290145874
下面試試Cpp版本的sort快不快,如果可以的話,直接用python呼叫Cpp版本的結果即可,
亂數取兩個,一個是整數,一個是小數部分[0,1)
s[i] = rand()% 1000+ rand() / double(RAND_MAX);
百萬的數已經超出大小了,設定如下,專案屬性下的,


然而這么設定后還是不行,


也是沒用,
搜索后發現,如圖下,debug活動

100萬維度竟然需要4s,我服了,我去,
time_t begin_t = clock();
std::sort(s.begin(), s.end());
time_t finish_t = clock();
Java竟然比Cpp還快了????這是咋回事?emm,
重新生成java的亂數,做到類似,如下:采用Random類,既有整數,又有小數部分,
a[j][i]=r.nextInt(10000)+(float) Math.random();//[0,1)
有沒有大佬解釋下啊,這是為啥呢??人生啊,還沒python快,也不知道哪里錯了,
For Video Recommendation in Deep learning QQ Group 277356808
視頻推薦深度學習加這個群
For Visual in deep learning QQ Group 629530787
視覺深度學習加這個,別加錯
I'm here waiting for you
別加那么多,沒必要,另外,不接受這個網頁的私聊/私信!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/166952.html
標籤:其他
