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
  • 相关阅读:
    android四大组件--ContentProvider具体解释
    C语言指针的初始化和赋值
    微信游戏《全民炫舞》公司的引擎开发和布料系统技术介绍
    Struts2自己定义拦截器实例—登陆权限验证
    数据仓库与数据挖掘的一些基本概念
    acm省赛选拔组队赛经验谈
    【我所认知的BIOS】—&gt; uEFI AHCI Driver(5) — 第一个protocol最终要開始安装了
    ios项目开发(天气预报项目):使用正则获取 weather.com.cn站点信息
    每日总结-05-16(再见强哥有感)
    编程算法基础-2.7作业-通讯编码-格式检查
  • 原文地址:https://www.cnblogs.com/Langzi127/p/1692651.html
Copyright © 2011-2022 走看看