2011年软件设计师辅导:并行排序算法(6)
private static void Main( string [] args)
{
Vector[] vectors = GetVectors();
Console.WriteLine( string .Format( " n = {0} " , vectors.Length));
Stopwatch watch1 = new Stopwatch();
watch1.Start();
A(vectors);
watch1.Stop();
Console.WriteLine( " A sort time: " + watch1.Elapsed);
Print(vectors);
vectors = GetVectors();
watch1.Reset();
watch1.Start();
B(vectors);
watch1.Stop();
Console.WriteLine( " B sort time: " + watch1.Elapsed);
Print(vectors);
vectors = GetVectors();
watch1.Reset();
watch1.Start();
C(vectors);
watch1.Stop();
Console.WriteLine( " C sort time: " + watch1.Elapsed);
Print(vectors);
vectors = GetVectors();
watch1.Reset();
watch1.Start();
D(vectors);
watch1.Stop();
Console.WriteLine( " D sort time: " + watch1.Elapsed);
Print(vectors);
Console.ReadKey();
}
private static Vector[] GetVectors()
{
int n = 1 << 21 ;
Vector[] vectors = new Vector[n];
Random random = new Random();
for ( int i = 0 ; i < n; i ++ )
{
vectors[i] = new Vector();
vectors[i].X = random.NextDouble();
vectors[i].Y = random.NextDouble();
vectors[i].Z = random.NextDouble();
vectors[i].W = random.NextDouble();
}
return vectors;
}
private static void A(Vector[] vectors)
{
Array.Sort(vectors, new VectorComparer());
}
private static void B(Vector[] vectors)
{
int n = vectors.Length;
for ( int i = 0 ; i < n; i ++ )
{
Vector c1 = vectors[i];
c1.T = Math.Sqrt(Math.Pow(c1.X, 2 )
+ Math.Pow(c1.Y, 2 )
+ Math.Pow(c1.Z, 2 )
+ Math.Pow(c1.W, 2 ));
}
第一考试网友情提示:如果您遇到任何疑问,请登录第一考试网考试辅导频道或添加qq:,第一考试网以“为考友服务”为宗旨,秉承“快乐学习,轻松考试!”的理念,旨在为广大考友打造一个良好、温馨的学习与交流平台,欢迎持续关注。以上是小编为大家推荐的《2011年软件设计师辅导:并行排序算法(6)》相关信息。
编辑推荐