python语言的执行速度_Python 语言为什么执行速度相当慢???不是一般的慢!!...

代码功能:1--400万之间找素数。分别用C,Java,Python语言实现,算法相同,三种语言用时测试结果如下:C语言用时:96秒。Java:用时:128秒。Python用时:8929秒(约2.48小时)Python为什...

代码功能:1--400万之间找素数。分别用C ,Java , Python 语言实现,算法相同,三种语言用时测试结果如下:

C语言用时:96秒。

Java:用时: 128秒。

Python 用时 : 8929 秒 (约2.48小时)

Python 为什么如此之慢呢????

硬件: 处理器:Intel Core i7 , Memory: 8G

PYTHON代码:

import time

start=time.clock()

prime=[]

prime.append(2)

n=1

i=1

for k in range(3, 4000000):

j=0

while ((j

j+=1

if (j==n):

prime.append(k)

i+=1

n+=1

k=k+2

end=time.clock()

print "done!"

print prime

print end-start

程序功能:1--400万之间找素数。

分别用C ,Java , Python 语言实现,算法相同,三种语言用时测试结果如下:

C语言用时:96秒。

Java:用时: 128秒。

Python 用时 : 8929 秒 (约2.48小时)

Phthon 为什么如此之慢呢????

C代码:

#include

using namespace std;

int main()

{

const int MAX=4000000, SIZE=283146;

//const long MAX=100, SIZE=30;

int prime[SIZE]={0};

int i,j,k,n;

prime[0]=2;

n=1;

i=1;

k=3;

clock_t start,finish;

double totaltime;

start=clock();

do

{

j=0;

while ((j

j++;

if (j==n)

{

prime[i]=k;

i++;

n++;

}

k=k+2;

}while(k

finish=clock();

totaltime=(double)(finish-start)/CLOCKS_PER_SEC;

cout << "All primes in 2 ~ " << MAX << "are:";

for (i=0;i< SIZE ;i++)

{

cout<

if ((i+1)% 10==0) cout<

}

cout << "\n";

cout <

cout <

}

JAVA代码:

public class Prime_array {

public static void main(String[] args)

{

final int MAX=4000000, SIZE=283146;

int prime[]=new int [SIZE];

int i,j,k,n;

prime[0]=2;

n=1;

i=1;

k=3;

String str="";

long starTime=System.currentTimeMillis();

do

{

j=0;

while ((j

j++;

if (j==n)

{

prime[i]=k;

i++;

n++;

//j=0;

}

k=k+2;

}while(k

long endTime=System.currentTimeMillis();

long Time=endTime-starTime;

System.out.println("All primes in 2~" + MAX + "are:");

for (i=0;i< SIZE ;i++)

{

System.out.print("\t" + prime[i]);

if ((i+1)% 10==0) System.out.println();

}

System.out.println();

System.out.println("n="+ n);

System.out.println("程序运行时间:"+ Time/1000);

}

}

PYTHON代码:

import time

start=time.clock()

prime=[]

prime.append(2)

n=1

i=1

for k in range(3, 4000000):

j=0

while ((j

j+=1

if (j==n):

prime.append(k)

i+=1

n+=1

k=k+2

end=time.clock()

print "done!"

print prime

print end-start

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值