C++ 需要少于一秒钟的执行时间
这是一个相当简单的程序,但我需要使它更有效 我基本上对数组进行排序,在每次迭代中,我根据公式计算一个变量,然后得到这些变量的最小值C++ 需要少于一秒钟的执行时间,c++,C++,这是一个相当简单的程序,但我需要使它更有效 我基本上对数组进行排序,在每次迭代中,我根据公式计算一个变量,然后得到这些变量的最小值 #include<iostream> using namespace std; int main() { int t, n; cin >> t; for(int i = 0; i < t; i++) { int v[100000]; cin >> n;
#include<iostream>
using namespace std;
int main()
{
int t, n;
cin >> t;
for(int i = 0; i < t; i++)
{
int v[100000];
cin >> n;
int s = 0;
for(int i = 0; i < n; i++)
{
cin >> v[i];
}
for(int i = 0; i < n; i++)
{
for(int j = i + 1; j < n; j++)
{
if(v[i] >= v[j])
{
swap(v[i], v[j]);
int wand = (j - i + 1) * (j - 1 + 1) * (j - i + 1);
s+= wand;
}
}
}
cout << s << endl;
}
}
#包括
使用名称空间std;
int main()
{
int t,n;
cin>>t;
for(int i=0;i>n;
int s=0;
对于(int i=0;i>v[i];
}
对于(int i=0;i=v[j])
{
互换(v[i],v[j]);
int-wand=(j-i+1)*(j-1+1)*(j-i+1);
s+=魔杖;
}
}
}
不能把int v[100000];从循环中去掉,应该会有很大帮助。仍然不够有效。你应该描述你想要精确计算的内容。所以,对于每次迭代,我比较v[i]和v[j]时,我都会根据公式(j-i+1)计算一个值乘以3。我需要计算这个值的最小值,而典型的n,t值看起来不可能通过编程进行进一步优化。