环球网校是美国纳斯达克上市企业欢聚时代(NASDAQ:YY)旗下品牌 | 住房和城乡建设部 建筑人才培训合作单位
您现在的位置在: > 计算机类 > 软件水平认证考试 > 考试辅导 >

2011年软件设计师辅导:并行排序算法(6)

2011-03-15 来源:互联网 作者:第一考试网

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 ));

#

  }

#

  #

责编: 返回顶部  打印

关于我们联系我们友情链接网站声明网站地图广告服务帮助中心