zoukankan      html  css  js  c++  java
  • Heap Sort

    堆积排序是对直接选择排序的一种改进,具体实现如下:

    代码
         #region Heap Sort
            
    private static void Adjust(int[] data, int rootIndex, int lastIndex)
            {
                
    if (data == null || data.Length < 1)
                {
                    
    throw new ArgumentNullException("data");
                }

                
    int childIndex = 2 * rootIndex + 1, temp;
                
    while (childIndex <= lastIndex)
                {
                    
    if (childIndex < lastIndex && data[childIndex] < data[childIndex + 1])
                    {
                        childIndex
    ++;
                    }
                    
    if (data[(childIndex - 1/ 2>= data[childIndex])
                    {
                        
    break;
                    }

                    temp 
    = data[(childIndex - 1/ 2];
                    data[(childIndex 
    - 1/ 2= data[childIndex];
                    data[childIndex] 
    = temp;

                    childIndex 
    = 2 * childIndex + 1;
                }
            }

            
    /// <summary>
            
    /// 堆积排序
            
    /// </summary>
            
    /// <param name="data"></param>
            public static void HeapSort(int[] data)
            {
                
    if (data == null || data.Length < 1)
                {
                    
    throw new ArgumentNullException("data");
                }

                
    for (int i = (data.Length - 1/ 2; i >= 0; i--)
                {
                    Adjust(data, i, data.Length 
    - 1);
                }

                
    int temp;
                
    for (int i = data.Length - 1; i > 0; i--)
                {
                    temp 
    = data[i];
                    data[i] 
    = data[0];
                    data[
    0= temp;

                    Adjust(data, 
    0, i - 1);
                }
            }
            
    #endregion
  • 相关阅读:
    二维数组和指向指针的指针
    多路复用构建高性能服务器
    disque概要
    漫谈云计算与SOA (1)
    zeromq
    自定义内存分配
    基于行的操作
    反应器类型的操作
    多个流,简短的读和写
    缓存
  • 原文地址:https://www.cnblogs.com/Langzi127/p/1692651.html
Copyright © 2011-2022 走看看