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

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

 分治的基本概念
把一个任务,分成形式和原任务相同,但规模更小的几个部分任务(通常是两个部分),分别完成,或只需要选一部完成。然后再处理完成后的这一个或几个部分的结果,实现整个任务的完成。
 分治的典型应用: 归并排序
数组排序任务可以如下完成:
1) 把前一半排序
2) 把后一半排序
3) 把两半归并到一个新的有序数组,然后再拷贝回原数组,排序完成。
 
#include 
using namespace std;void Merge(int a[],int s,int mid,int e,int tmp[]){ int p1=s,p2=mid+1,p3=0; while(p1<=mid && p2<=e) { if(a[p1]<=a[p2]) tmp[p3++]=a[p1++]; else tmp[p3++]=a[p2++]; } while(p1<=mid) tmp[p3++]=a[p1++]; while(p2<=e) tmp[p3++]=a[p2++]; int cnt=0; for(int i=s; i<=e; i++) a[i]=tmp[cnt++];}void MergeSort(int a[],int s,int e,int tmp[]){ if(s

转载于:https://www.cnblogs.com/zhanyeye/p/9746104.html

你可能感兴趣的文章
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
查看>>
<转>云主机配置OpenStack使用spice的方法
查看>>
java jvm GC 各个区内存参数设置
查看>>
[使用帮助] PHPCMS V9内容模块PC标签调用说明
查看>>
关于FreeBSD的CVSROOT的配置
查看>>
基于RBAC权限管理
查看>>
基于Internet的软件工程策略
查看>>
数学公式的英语读法
查看>>
留德十年
查看>>
迷人的卡耐基说话术
查看>>
PHP导出table为xls出现乱码解决方法
查看>>
PHP问题 —— 丢失SESSION
查看>>
PyCairo指南--目录
查看>>
Java中Object类的equals()和hashCode()方法深入解析
查看>>
Linux/centos 下挂载硬盘的 方法
查看>>
数据库
查看>>
Vue------第二天(计算属性、侦听器、绑定Class、绑定Style)
查看>>
DICOM医学图像处理:WEB PACS初谈
查看>>
maven assembly plugin使用
查看>>
5: Calling Programs(Working with programs)
查看>>