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
  • 相关阅读:
    Hsl PLC
    .NET平台常用框架整理
    SSH全注解实例详解
    word2vec (CBOW、分层softmax、负采样)
    pandas dataframe 一行变多行 (query pv统计term pv)
    python 按二维数组的某行或列排序 (numpy lexsort)
    基于决策树的分类算法
    【linux】 mail/mutt 发送邮件
    【python】含中文字符串截断
    【python】 判断纯ascii串
  • 原文地址:https://www.cnblogs.com/Langzi127/p/1692651.html
Copyright © 2011-2022 走看看