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

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

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

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

  // Merge sort #

  MergeSort < T > mergeSort = new MergeSort < T > ();

#

  List < T[] > source = new List < T[] > (processorCount); #

  foreach (ParallelEntity pe in partArray)

#

  {

#

  source.Add(pe.Array); #

  } #

  mergeSort.Sort(array, source, comparer); #

  } #

  } #

  } #

  多路归并排序类 MergeSort

#

  using System; #

  using System.Collections.Generic;

#

  using System.Linq; #

  using System.Text; #

  namespace Sort #

  {

#

  /**/ /// #

  /// MergeSort

#

  /// #

  /// #

  public class MergeSort < T > #

  {

#

  public void Sort(T[] destArray, List < T[] > source, IComparer < T > comparer)

#

  { #

  // Merge Sort #

  int [] mergePoint = new int [source.Count]; #

  for ( int i = 0 ; i < source.Count; i ++ )

#

  {

#

  mergePoint[i] = 0 ;

#

  } #

  int index = 0 ;

#

  while (index < destArray.Length) #

  {

#

  int min = - 1 ; #

  for ( int i = 0 ; i < source.Count; i ++ ) #

  {

#

  if (mergePoint[i] >= source[i].Length) #

  { #

  continue ;

#

  } #

  if (min < 0 )

#

  { #

  min = i;

#

  } #

  else

#

  { #

  if (comparer.Compare(source[i][mergePoint[i]], source[min][mergePoint[min]]) < 0 )

#

  {

#

  min = i; #

  }

#

  } #

  }

#

  if (min < 0 )

#

  {

#

  continue ; #

  } #

  destArray[index ++ ] = source[min][mergePoint[min]]; #

  mergePoint[min] ++ ; #

  }

#

  }

#

  } #

  } #

  #

责编: 返回顶部  打印

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