- 主题:如何优雅的生成类似[1,-3,5,-7……]这样的序列
Qt 5.14.2 MinGW 32bit release下,运行结果是815毫秒左右。
#include <QCoreApplication>
#include <QDebug>
#include <QElapsedTimer>
int main(int argc, char *argv[])
{
// QCoreApplication app(argc, argv);
QElapsedTimer timer;
timer.start();
int r = 0;
for(int n=0; n<100000; n++){
int a[10000];
int b[2]={1, -1};
for(int i=0; i<10000; i++){
a[i] = (2*i+1)*b[i%2];
}
r = a[9999];
}
qDebug()<<"Time used: " << timer.elapsed() << "ms. a[9999]=" << r;
// return app.exec();
}
【 在 callmebbser (BBSer) 的大作中提到: 】
: 同一台电脑下,用Java运行的结果是220毫秒左右。
: public class GenArray {
: public static void main(final String[] args) {
: ...................
--
修改:callmebbser FROM 58.23.245.*
FROM 58.23.245.*
这里为什么要用 QT。
【 在 callmebbser (BBSer) 的大作中提到: 】
: Qt 5.14.2 32bit release下,运行结果是815毫秒左右。
: #include <QCoreApplication>
: #include <QDebug>
: #include <QElapsedTimer>
: int main(int argc, char *argv[])
: {
: // QCoreApplication app(argc, argv);
: QElapsedTimer timer;
: timer.start();
: int r = 0;
: for(int n=0; n<100000; n++){
: int a[10000];
: int b[2]={1, -1};
: for(int i=0; i<10000; i++){
: a[i] = (2*i+1)*b[i%2];
: }
: r = a[9999];
: }
: qDebug()<<"Time used: " << timer.elapsed() << "ms. a[9999]=" << r;
: // return app.exec();
: }
--
FROM 27.38.249.*
电脑上正好有装了个Qt而已。
【 在 flw (帅五进九) 的大作中提到: 】
: 这里为什么要用 QT。
--
FROM 58.23.245.*
Visual Studio 2013 VC++ 32位 release下,运行结果是820毫秒左右。
#include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
long t = GetTickCount();
int r = 0;
for (int n = 0; n < 10000; n++){
int a[10000] = { 0 };
int b[2] = { 1, -1 };
for (int i = 0; i < 10000; i++){
a[i] = (2 * i + 1)*b[i % 2];
}
r = a[9999];
}
t = GetTickCount() - t;
cout << "Time used: " << t << " ms. a[9999]=" << r;
return 0;
}
【 在 callmebbser (BBSer) 的大作中提到: 】
: Qt 5.14.2 MinGW 32bit release下,运行结果是815毫秒左右。
: #include <QCoreApplication>
: #include <QDebug>
: ...................
--
FROM 58.23.245.*
没学过Fortran,也没有Fortran环境。前辈传一个Fortran的例子看看运行时间最少能到
多少。
【 在 ToSimplicity (致简) 的大作中提到: 】
: 这时候,Fortran没有上场,感觉前浪好惨啊。
--
修改:callmebbser FROM 58.23.245.*
FROM 58.23.245.*
VC++ 6.0 32bit release下,运行结果是115毫秒左右。
#include "stdafx.h"
#include<time.h>
int main(int argc, char* argv[])
{
int t = clock();
int r = 0;
for(int n=0; n<10000; n++){
int a[10000] = {0};
int b[2] = {1, -1};
for(int i=0; i<10000; i++){
a[i] = (2*i+1)*b[i%2];
}
r = a[9999];
}
t = clock() - t;
printf("Time used: %ld ms. a[9999]=%d\n", t, r);
return 0;
}
【 在 callmebbser (BBSer) 的大作中提到: 】
: Visual Studio 2013 VC++ 32位 release下,运行结果是820毫秒左右。
: #include "stdafx.h"
: #include <windows.h>
: ...................
--
FROM 58.23.245.*
不是,我的意思是说代码不还是用 gcc 编译的吗?
再说这里也没用到 QT。
【 在 callmebbser (BBSer) 的大作中提到: 】
: 电脑上正好有装了个Qt而已。
--
FROM 27.38.249.*
Delphi 7 的程序,运行结果是100毫秒左右。
四月份还写了上千行的Pascal代码,这才过两个月,我就连Pascal的数组和for循环怎么
写都忘了 :(
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Windows;
var
a: array[0..9999] of LongInt;
b: array[0..1] of LongInt;
n: LongInt;
r: LongInt;
i: LongInt;
t:cardinal;
begin
t := GetTickCount;
for n:=1 to 10000 do
begin
b[0] := 1;
b[1] := -1;
for i:=0 to 9999 do
begin
a[i] := (2*i+1)*b[i mod 2];
end;
r := a[9999];
end;
t := GetTickCount - t;
Writeln('Time used:', t, ' ms. a[9999]=', r);
end.
【 在 callmebbser (BBSer) 的大作中提到: 】
: VC++ 6.0 32bit release下,运行结果是115毫秒左右。
: #include "stdafx.h"
: #include<time.h>
: ...................
--
FROM 58.23.245.*
C:\Temp\ta>gcc -o ta.exe ta.c
C:\Temp\ta>for /L %i in (1,1,10) do ta.exe
Time used: 339 ms. a[9999]=-19999
Time used: 329 ms. a[9999]=-19999
Time used: 331 ms. a[9999]=-19999
Time used: 332 ms. a[9999]=-19999
Time used: 327 ms. a[9999]=-19999
Time used: 328 ms. a[9999]=-19999
Time used: 328 ms. a[9999]=-19999
Time used: 329 ms. a[9999]=-19999
Time used: 330 ms. a[9999]=-19999
Time used: 330 ms. a[9999]=-19999
C:\Temp\ta>
ta.c:
#include <stdio.h>
#include <time.h>
int main(void){
clock_t t = clock();
int r;
for(int n=0; n<10000; n++){
int a[10000] = {0};
int b[2] = {1, -1};
for(int i=0; i<10000; i++){
a[i] = (2*i+1)*b[i%2];
}
r = a[9999];
}
t = clock() - t;
printf("Time used: %d ms. a[9999]=%d\n", t, r);
return 0;
}
【 在 flw (帅五进九) 的大作中提到: 】
: 不是,我的意思是说代码不还是用 gcc 编译的吗?
: 再说这里也没用到 QT。
--
修改:callmebbser FROM 58.23.245.*
FROM 58.23.245.*
还是Delphi强悍,Borland最棒了
我写了个QB64程序,本机3.08秒
DIM t AS DOUBLE
DIM p AS INTEGER
DIM a(10000) AS INTEGER
t = TIMER
FOR n = 1 TO 10000
p = 1
FOR i = 1 TO 20000 STEP 2
IF (i AND 3) = 3 THEN
a(p) = -i
ELSE
a(p) = i
END IF
p = p + 1
NEXT i
NEXT n
PRINT TIMER - t
PRINT a(10000)
qb64编译器官网
https://www.portal.qb64.org/
绿色的,下载解压就能跑
【 在 callmebbser 的大作中提到: 】
: Delphi 7 的程序,运行结果是100毫秒左右。
--
修改:sosei FROM 60.1.11.*
FROM 60.1.11.*