• 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语言 > 归并排序的递归实现与非递归实现代码

归并排序的递归实现与非递归实现代码

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

通过本文主要向大家介绍了归并排序代码,c语言归并排序代码,归并排序算法代码,二分归并排序伪代码,归并排序伪代码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。值得注意的是归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。

算法描述
归并操作的工作原理如下:
第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
第二步:设定两个指针,最初位置分别为两个已经排序序列的起始位置
第三步:比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置

时间复杂度:
时间复杂度为O(nlogn) 这是该算法中最好、最坏和平均的时间性能。
空间复杂度为 O(n)
比较操作的次数介于(nlogn) / 2和nlogn - n + 1。
赋值操作的次数是(2nlogn)。归并算法的空间复杂度为:0 (n)
归并排序比较占用内存,但却效率高且稳定的算法。
(以上摘抄自百度百科)

代码实现
自顶向上实现:
//使用辅助数组实现归并的过程
</div>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

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

  • C语言开发之归并排序详解及实例
  • C语言 实现归并排序算法
  • C语言演示对归并排序算法的优化实现
  • C语言实现排序算法之归并排序详解
  • 归并排序的递归实现与非递归实现代码

相关文章

  • 2017-05-28快速掌握VC6.0中各种宏注释应用(附图)
  • 2017-05-28基于C++浮点数(float、double)类型数据比较与转换的详解
  • 2017-05-28C语言中的abs()函数和exp()函数的用法
  • 2017-05-28简单比较C语言中的execl()函数与execlp()函数
  • 2017-05-28浅谈哈希表存储效率一般不超过50%的原因
  • 2017-05-28有关C++头文件的包含顺序研究
  • 2017-05-28C和C++ const的声明差异
  • 2017-05-28VC6.0实现读取Excel数据的方法
  • 2017-05-28C++常用字符串分割方法实例汇总
  • 2017-05-28详解C++中shared_ptr的使用教程

文章分类

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

最近更新的内容

    • 详解C语言中的wait()函数和waitpid()函数
    • 基于Windows API分解路径问题的详解
    • C++中简单读写文本文件的实现方法
    • xxx_cast类型转换的实现方法
    • c语言字符数组与字符串的使用详解
    • 简单的汉诺塔问题解法代码
    • VC下通过系统快照实现进程管理的方法
    • 奇怪的C语言特性
    • c语言指针之二级指针示例
    • 头文件不宜定义变量的原因全面解析

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

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