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
别加那么多,没必要,另外,不接受这个网页的私聊/私信!!!