Java再次入门之排序

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:47
Time 2:17015
//java单位ms

而py 100次都要这么多。17.56885290145874

下面试试Cpp版本的sort快不快,如果可以的话,直接用python调用Cpp版本的结果即可。

随机数取两个,一个是整数,一个是小数部分[0,1)

s[i] = rand()% 1000+ rand() / double(RAND_MAX);

百万的数已经超出大小了,设置如下,项目属性下的。

Java再次入门之排序_第1张图片

Java再次入门之排序_第2张图片

然而这么设置后还是不行。

Java再次入门之排序_第3张图片Java再次入门之排序_第4张图片

也是没用。

搜索后发现,如图下,debug活动

Java再次入门之排序_第5张图片

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

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

 

 

你可能感兴趣的:(DaLao's,Notebook,java,sort,排序,java,cpp,python)