博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
归并排序
阅读量:7259 次
发布时间:2019-06-29

本文共 970 字,大约阅读时间需要 3 分钟。

归并排序实现

归并排序,分治法,将一个无序的数组,不断二分,对两边数组进行排序,在通过递归的方式,将两个排过序的数组合并(关键)。

当子数组只有一个值时,即可进行合并。

代码如下:

#include 
using namespace std;const int MAXN = 100;int A[MAXN] = {0,5,2,4,7,1,3,2,6};void Megre(int p,int q,int r){ int b[r-p+1]; int c[r-p+1]; int i = 1; int j = 1; int w; w = 1; for (int x = p;x<=q;x++) b[w++] = A[x]; w = 1; for (int x = q+1;x<=r;x++) c[w++] = A[x]; w = p; while (w <= r) { if (j > r-q||(b[i] < c[j]&&i <= q-p+1)) { A[w] = b[i]; i++; } else { A[w] = c[j]; j++; } w++; }}void Megre_sort(int p,int r){ if (p < r) { int q = (p + r) / 2; Megre_sort(p, q); Megre_sort(q + 1, r); Megre(p, q, r); }}int main(){ Megre_sort(1,8); for (int i = 1;i<=8;i++) printf("%d ",A[i]); printf("\n"); return 0;}

  

转载于:https://www.cnblogs.com/YDDDD/p/10286578.html

你可能感兴趣的文章
53. Maximum Subarray最大子序和
查看>>
读取接口(需要登录态和不需要登录态)并把返回值写入原有excel
查看>>
C# ToString()和Convert.ToString()的区别
查看>>
中国天气网API
查看>>
Highways prim() 没特别的意思
查看>>
php smarty模版引擎中变量操作符及使用方法
查看>>
(转)Excel VBA 操作 Word(入门篇)
查看>>
mv命令详解
查看>>
.NET(C#)开源代码分析
查看>>
Android Notes
查看>>
调整数组顺序使奇数位于偶数前面
查看>>
从零开始--系统深入学习android(实践-让我们开始写代码-新手指南-6.使用Fragments构建动态UI)...
查看>>
opencv开发的程序分发给客户时所需要的dll文件
查看>>
MakeGenericMethod Reflection 反射 ObjectToXml<T> Generic XmlSerializer
查看>>
关于验收测试的几个困惑
查看>>
MVC项目引用备注
查看>>
vue2+vuex+vue-router 快速入门(五) vuex 介绍
查看>>
Nginx查看并发连接数
查看>>
awk next以及getline用法示例
查看>>
HTML 3 至CSS
查看>>