归并排序算法

简介: 算法导论第二章
+关注继续查看
#include 
//展示数组(声明)
void sort(int array[], int start, int end);
//归并排序(声明)
void show(int num[], int length);
int main(void)
{
  //初始化
  int array[] = {5, 2, 4, 7, 1, 3, 2, 6},len=8;
  printf("排序前:\n");
  show(array, len);
  //归并排序
  sort(array, 0, len-1);
  printf("排序后:\n");
  show(array, len);
}
//展示数组(声明)
void show(int num[], int length)
{
  for (int i = 0; i < length; i++)
  {
    printf("%3d", num[i]);
  }
  printf("\n");
}
//归并排序(定义)
void sort(int array[], int start, int end)
{
  //返回条件
  if (start == end)
  {
    return;
  }
  //定义左右边界
  int lstart = start, lend = (start + end) / 2, rstart = lend + 1, rend = end;
  //排序左
  sort(array, lstart, lend);
  //排序右
  sort(array, rstart, rend);
  //左右归并
  for (int i = rstart; i <= rend; i++)
  {
    int j = i - 1, tmp = array[i];
    while (array[j] > tmp && j >= 0)
    {
      array[j + 1] = array[j];
      j--;
    }
    array[j + 1] = tmp;
  }
}
目录
相关文章
|
2月前
|
算法 索引
快速排序、归并排序、二分算法
快速排序、归并排序、二分算法
21 0
|
2月前
|
存储 搜索推荐 UED
转:探索归并排序算法在文档管理系统中的优势和运用
在现代社会中,文档管理系统扮演着重要的角色,帮助人们高效、方便地组织、存储和检索各类文档信息。而作为一个高效排序算法,归并排序在文档管理系统中具有许多优势和广泛的运用。归并排序算法以其稳定性、高效性和扩展性闻名于世,成为文档管理系统不可或缺的一部分。本文将深入探索归并排序算法在文档管理系统中的优势和运用。
29 0
|
2月前
|
存储 搜索推荐 算法
转:归并排序算法在局域网管理软件中所具备的优势、复杂性与作用
在局域网管理软件中,归并排序算法能够对大规模数据进行高效、稳定的排序,支持分布式处理和扩展性,从而提升局域网管理软件的性能和效率。通过归并排序算法,可以更好地组织和管理局域网中的数据,提供更可靠、高效的网络管理服务。
32 2
|
3月前
|
算法 索引
LeetCode算法小抄--归并排序详解及应用
LeetCode算法小抄--归并排序详解及应用
|
7月前
|
搜索推荐 算法
【算法】归并排序算法
归并排序是一种将递归和分治结合到一起实现的一种排序算法。将一个序列通过递归拆分为越来越小的半子序列,然后再对半子序列合并为 一个大的有序序列。
34 0
【算法】归并排序算法
|
7月前
|
算法
算法排序问题。每种排序代表着没中思考问题的方式。我们学习了选择排序,冒泡排序,归并排序。让我们去回顾回顾吧。重在思想的领悟。
算法排序问题。每种排序代表着没中思考问题的方式。我们学习了选择排序,冒泡排序,归并排序。让我们去回顾回顾吧。重在思想的领悟。
49 0
算法排序问题。每种排序代表着没中思考问题的方式。我们学习了选择排序,冒泡排序,归并排序。让我们去回顾回顾吧。重在思想的领悟。
|
7月前
|
机器学习/深度学习 存储 人工智能
【有营养的算法笔记】基础算法 —— 归并排序思路梳理和应用
【有营养的算法笔记】基础算法 —— 归并排序思路梳理和应用
66 0
【有营养的算法笔记】基础算法 —— 归并排序思路梳理和应用
|
8月前
|
算法
每天一点算法-归并排序(Day12)
每天一点算法-归并排序(Day12)
38 0
|
8月前
|
机器学习/深度学习 算法 API
算法排序5——归并排序&分治思想
算法排序5——归并排序&分治思想
54 0
算法排序5——归并排序&分治思想
相关产品
机器翻译
推荐文章
更多