algorithm ch2 Merge_sort
2024-08-25 16:16:45
这是用分治法来对序列进行排序,将较长的一个序列分解为n个比较短的序列,然后分别处理这n个较小的段序列,最后合并。使用递归的来实现。
具体实现的代码如下:
void MergeSort(int *A, int p, int r)
{
if(p < r)
{
int q = ( p + r ) / ;
MergeSort(A, p, q);
MergeSort(A, q + , r);
Merge(A, p, q, r);
}
}
void Merge(int *A, int p, int q, int r)
{
int n1 = q - p + ;
int n2 = r - q ;
int *L1 = new int[ (n1 + ) * sizeof(int)];
int *R1 = new int[ (n2 + ) * sizeof(int)];
int iLoop;
int jLoop; for(iLoop = ; iLoop != n1; ++iLoop)
{
L1[iLoop] = A[p + iLoop];
}
for( jLoop = ; jLoop != n2; ++jLoop)
{
R1[jLoop] = A[q + jLoop + ];
}
L1[n1 ] = INT_MAX;
R1[n2 ] = INT_MAX; jLoop = ;
iLoop = ;
for (int kLoop = p; kLoop != r + ; ++kLoop)
{
if(L1[iLoop] <= R1[jLoop])
{
A[kLoop] = L1[iLoop++];
}
else
{
A[kLoop] = R1[jLoop++];
}
}
delete L1;
delete R1;
}
算法还需要深入思考,to be continued
最新文章
- C#程序员经常用到的10个实用代码片段
- L2TP协议
- Scala笔记整理
- 【BZOJ-3910】火车 倍增LCA + 并查集
- SOA 架构中的ESB是更好的应用于异构系统集成整合还是用于统一服务调用/基础服务实施
- NDK-gdb
- python3中输出不换行
- javaBean为什么要实现Serializable接口?
- bzoj3998 [TJOI2015]弦论(SAM)
- STM32库中 __IO 修饰符(volatile修饰符)
- Objective-c 数据类型
- [Mark] KVM 虚拟化基本原理
- kafka 0.10.2 消息消费者
- a链接易混淆与form表单简易验证用法详解
- [代码应用]javaSE程序递归删除文件夹下的.bak文件程序源代码
- python 函数返回值(总结)
- 第三章 Models详解
- Drupal使用
- python---基础知识回顾(三)(面向对象)
- Redis性能测试Redis-benchmark
热门文章
- R6的压力测试
- 【题解】APIO2007动物园
- Android 异步通信:图文详解Handler机制工作原理
- at用法小记
- Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) A
- Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) B
- 使用记事本创建Web服务(WebService)
- idea初学建立maven项目报错
- ext4文件系统由文件的inode号定位其inode Table
- iebackground+icon图标兼容