• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言实现堆排序的简单实例

C语言实现堆排序的简单实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了堆排序c语言实现,堆排序算法c语言,c语言堆排序,堆排序c语言代码,c语言堆和栈的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文通过一个C语言实现堆排序的简单实例,帮助大家抛开复杂的概念,更好的理解堆排序。
实例代码如下:

void FindMaxInHeap(int arr[], const int size) {   
  for (int j = size - 1; j > 0; --j) {   
    int parent = j / 2;   
    int child = j;   
    if (j < size - 1 && arr[j] < arr[j+1]) {   
      ++child;   
    }   
    if (arr[child] > arr[parent]) {   
      int tmp = arr[child];   
      arr[child] = arr[parent];   
      arr[parent] = tmp;   
    }   
  }   
}   
void HeapSort(int arr[], const int size) {   
  for (int j = size; j > 0; --j) {   
    FindMaxInHeap(arr, j);   
    int tmp = arr[0];   
    arr[0] = arr[j - 1];   
    arr[j - 1] = tmp;   
  }   
}   
 
int main() 
{ 
  int arr[] = {2, 5, 3, 12, 6, 21, 8, 1};   
  int n = sizeof(arr) / sizeof(arr[0]);   
  HeapSort(arr, n);   
  for (int j = 0; j < n; ++j) {   
    printf("%3d",arr[j]);   
  }   
  printf("\n");   
return 0; 
}
</div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言 数据结构堆排序顺序存储(升序)
  • 简单了解C语言中直接插入排序与直接选择排序实现
  • C语言中快速排序和插入排序优化的实现
  • C语言实现堆排序的简单实例
  • C语言对堆排序一个算法思路和实现代码
  • 内部排序之堆排序的实现详解

相关文章

  • 2017-05-28C语言实现字符串匹配KMP算法
  • 2017-05-28解读C++编程的相关文件操作
  • 2017-05-28使用C++进行Cocos2d-x游戏开发入门过程中的要点解析
  • 2017-05-28深入C++浮点数无效值定义与判定的解决办法
  • 2017-05-28xxx_cast类型转换的实现方法
  • 2017-05-28使用C语言来解决循环队列问题的方法
  • 2017-05-28C语言new操作的安全性分析
  • 2017-05-28c++中const的使用详解
  • 2017-05-28浅析C++11新特性的Lambda表达式
  • 2017-05-28浅谈C语言的字节对齐 #pragma pack(n)2

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++内存泄漏及检测工具详解
    • C语言实现最大间隙问题实例
    • C++实现raw_input的方法
    • c语言生成随机数的方法(获得一组不同的随机数)
    • 基于C/C++ 常见误区详解
    • C语言 strcpy和memcpy区别详细介绍
    • C语言简单实现求n阶勒让德多项式的方法
    • Cocos2d-x中实现弹出对话框示例
    • 基于VC实现的网络监听功能程序实例
    • 在C语言中使用对数函数的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有