Java再次入门之排序

   日期:2020-10-11     浏览:88    评论:0    
核心提示: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万次排序1

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

别加那么多,没必要,另外,不接受这个网页的私聊/私信!!!

 

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服