• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

C#堆排序代码

OC/C/C++ 水墨上仙 1031次浏览

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#堆排序代码
喜欢 (0)
加载中……