归并排序算法

简介: 算法导论第二章
#include //展示数组(声明)voidsort(intarray[], intstart, intend);
//归并排序(声明)voidshow(intnum[], intlength);
intmain(void)
{
//初始化intarray[] = {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);
}
//展示数组(声明)voidshow(intnum[], intlength)
{
for (inti=0; i<length; i++)
  {
printf("%3d", num[i]);
  }
printf("\n");
}
//归并排序(定义)voidsort(intarray[], intstart, intend)
{
//返回条件if (start==end)
  {
return;
  }
//定义左右边界intlstart=start, lend= (start+end) /2, rstart=lend+1, rend=end;
//排序左sort(array, lstart, lend);
//排序右sort(array, rstart, rend);
//左右归并for (inti=rstart; i<=rend; i++)
  {
intj=i-1, tmp=array[i];
while (array[j] >tmp&&j>=0)
    {
array[j+1] =array[j];
j--;
    }
array[j+1] =tmp;
  }
}
目录
相关文章
|
2月前
|
算法 搜索推荐 Shell
数据结构与算法学习十二:希尔排序、快速排序(递归、好理解)、归并排序(递归、难理解)
这篇文章介绍了希尔排序、快速排序和归并排序三种排序算法的基本概念、实现思路、代码实现及其测试结果。
27 1
|
2月前
|
存储 搜索推荐 算法
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
|
2月前
|
存储 算法 搜索推荐
算法进阶之路:Python 归并排序深度剖析,让数据排序变得艺术起来!
算法进阶之路:Python 归并排序深度剖析,让数据排序变得艺术起来!
76 0
|
2月前
|
搜索推荐 Java Go
深入了解归并排序算法
深入了解归并排序算法
24 0
|
4月前
|
算法 搜索推荐 Java
算法实战:手写归并排序,让复杂排序变简单!
归并排序是一种基于“分治法”的经典算法,通过递归分割和合并数组,实现O(n log n)的高效排序。本文将通过Java手写代码,详细讲解归并排序的原理及实现,帮助你快速掌握这一实用算法。
44 0
|
4月前
|
数据采集 搜索推荐 算法
【高手进阶】Java排序算法:从零到精通——揭秘冒泡、快速、归并排序的原理与实战应用,让你的代码效率飙升!
【8月更文挑战第21天】Java排序算法是编程基础的重要部分,在算法设计与分析及实际开发中不可或缺。本文介绍内部排序算法,包括简单的冒泡排序及其逐步优化至高效的快速排序和稳定的归并排序,并提供了每种算法的Java实现示例。此外,还探讨了排序算法在电子商务、搜索引擎和数据分析等领域的广泛应用,帮助读者更好地理解和应用这些算法。
46 0
|
5月前
|
存储 算法 搜索推荐
算法进阶之路:Python 归并排序深度剖析,让数据排序变得艺术起来!
【7月更文挑战第12天】归并排序是高效稳定的排序算法,采用分治策略。Python 实现包括递归地分割数组及合并已排序部分。示例代码展示了如何将 `[12, 11, 13, 5, 6]` 分割并归并成有序数组 `[5, 6, 11, 12, 13]`。虽然 $O(n log n)$ 时间复杂度优秀,但需额外空间,适合大规模数据排序。对于小规模数据,可考虑其他算法。**
80 4
|
5月前
|
算法 搜索推荐 C#
|
6月前
|
搜索推荐 C语言
【C/排序算法】:快速排序和归并排序的非递归实现
【C/排序算法】:快速排序和归并排序的非递归实现
41 0
|
6月前
|
搜索推荐 算法
【C/排序算法】:归并排序和计数排序
【C/排序算法】:归并排序和计数排序
40 0