首页 > 编程 > C# > 正文

C#堆排序实现方法

2020-01-24 02:03:22
字体:
来源:转载
供稿:网友

本文实例讲述了C#堆排序实现方法。分享给大家供大家参考。具体如下:

private static void Adjust (int[] list, int i, int m){ int Temp = list[i]; int j = i * 2 + 1; while (j <= m) {  //more children  if(j < m)   if(list[j] < list[j + 1])    j = j + 1;  //compare roots and the older children  if(Temp < list[j])  {   list[i] = list[j];   i = j;   j = 2 * i + 1;  }  else  {   j = m + 1;  } } list [i] = Temp;}public static void HeapSort (int[] list){ //build the initial heap for (int i = (list.Length - 1) / 2; i > = 0; i-)  Adjust (list, i, list.Length - 1);  //swap root node and the last heap node for (int i = list.Length - 1; i > = 1; i-) {  int Temp = list [0];  list [0] = list [i];  list [i] = Temp;  Adjust (list, 0, i - 1); }}

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表