归并排序
来源:互联网 发布:分水岭分割算法流程图 编辑:程序博客网 时间:2024/06/04 18:51
//a是数组,tmp是缓冲区
void merge(int *a,int left,int mid,int right,int *tmp)
{
int i=left;
int j=mid+1;
int k=0;
while(i<=mid&&j<=right)
{
if(a[i]>a[j])
tmp[k++]=a[j++];
else(a[i]<a[j])
tmp[k++]=a[i++];
}
while(i<=mid)
tmp[k++]=a[i++];
while(j<=right)
tmp[k++]=a[j++];
}
void mergesort(int *a,int left,int right,int *tmp)
{
if(left>=right)
return ;
int mid=(left+right)/2;
mergrsort(a,left,mid,tmp); //对左边部分进行归并排序
mergesort(a,mid+1,right,tmp); //对右边部分进行归并排序
merge(a,left,mid,right,tmp); //将两部分数据进行归并
}
//归并排序
int main7()
{
int a[size]={9,8,3,4,0,7,5,8,2,7,1};
int len=sizeof(a)/sizeof(a[0]);
int tmp[10];
mergesort(a,0,len-1,tmp);
printA(a,len);
return 0;
}
阅读全文
1 0
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 用模板实现顺序表和带头结点的双向循环链表
- 粘贴版
- 杭电1232畅通工程(最小生成树模板)
- Golang学习笔记 方法和接口
- javascript常用对象
- 归并排序
- hdu2816 I LVOE YOU TOO
- 关于头结点的一些知识!
- HDU1863(畅通工程)
- 关于IDEA-maven环境下如何使用log4j
- 17 多校 3
- CT之cnn
- 【POJ 3414】Pots(BFS)
- Error: Couldn't find preset "env" relative to directory