目录
排序的类型
归并排序
示例
输出
首页 后端开发 C++ 在C语言中解释归并排序技术

在C语言中解释归并排序技术

Sep 05, 2023 pm 02:05 PM
c语言 归并排序 排序技术

排序是将元素按升序(或)降序排列的过程。

排序的类型

C 语言提供了五种排序技术,如下 -

  • 冒泡排序(或)交换排序
  • 选择排序
  • 插入排序(或)线性排序
  • 快速排序(或)分区交换排序
  • 归并排序(或)外部排序

归并排序

归并排序是分而治之方法。它将数组分成两半,递归地征服并合并(组合)。

让我们考虑下面给出的一个示例 -

采用一个未排序的数组并应用合并排序技术进行排序数组。

38, 27, 43, 3, 9, 82, 10

在C语言中解释归并排序技术

现在,通过排序组合数组,如下所示 -

在C语言中解释归并排序技术

示例

以下是对元素进行排序的 C 程序使用合并排序技术 -

 实时演示

#include <stdio.h>
#define max 10
int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 };
int b[10];
void merging(int low, int mid, int high) {
   int l1, l2, i;
   for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) {
      if(a[l1] <= a[l2])
         b[i] = a[l1++];
      else
         b[i] = a[l2++];
   }
   while(l1 <= mid)
      b[i++] = a[l1++];
   while(l2 <= high)
      b[i++] = a[l2++];
   for(i = low; i <= high; i++)
      a[i] = b[i];
   }
   void sort(int low, int high) {
      int mid;
      if(low < high) {
         mid = (low + high) / 2;
         sort(low, mid);
         sort(mid+1, high);
         merging(low, mid, high);
      } else {
      return;
   }
}
int main() {
   int i;
   printf("List before sorting</p><p>");
   for(i = 0; i <= max; i++)
   printf("%d ", a[i]);
   sort(0, max);
   printf("</p><p>List after sorting</p><p>");
   for(i = 0; i <= max; i++)
   printf("%d ", a[i]);
}
登录后复制

输出

执行上述程序时,会产生以下输出 -

List before sorting
10 14 19 26 27 31 33 35 42 44 0
List after sorting
0 10 14 19 26 27 31 33 35 42 44
登录后复制

以上是在C语言中解释归并排序技术的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

c语言中typedef struct的用法 c语言中typedef struct的用法 May 09, 2024 am 10:15 AM

c语言中typedef struct的用法

c语言中strcpy和strcat的区别 c语言中strcpy和strcat的区别 May 08, 2024 pm 01:03 PM

c语言中strcpy和strcat的区别

c语言中real是什么意思 c语言中real是什么意思 May 09, 2024 pm 12:06 PM

c语言中real是什么意思

C语言乘方函数如何实现 C语言乘方函数如何实现 May 09, 2024 pm 11:33 PM

C语言乘方函数如何实现

c语言中scanf出现错误怎么办 c语言中scanf出现错误怎么办 May 09, 2024 am 11:39 AM

c语言中scanf出现错误怎么办

_complex在c语言中的用法 _complex在c语言中的用法 May 08, 2024 pm 01:27 PM

_complex在c语言中的用法

restrict在c语言中的用法 restrict在c语言中的用法 May 08, 2024 pm 01:30 PM

restrict在c语言中的用法

_bool在c语言中是什么意思 _bool在c语言中是什么意思 May 08, 2024 pm 01:33 PM

_bool在c语言中是什么意思

See all articles