经典算法--归并排序
来源:互联网 发布:阿基拉和拼字比赛 知乎 编辑:程序博客网 时间:2024/05/16 08:01
#include<iostream>using namespace std;/*归并排序是一个稳定的排序,时间复杂度为O(nlgn)*/void Merge(int a[],int n,int b[],int m,int tmp[]){//合并已经排好序的数组int i=0,j=0,k=0;while(i<n&&j<m){if(a[i]<b[j])tmp[k++]=a[i++];elsetmp[k++]=b[j++];}while(i<n)tmp[k++]=a[i++];while(j<m)tmp[k++]=b[j++];for(i=0;i<k;i++)a[i]=tmp[i];}void mergesort(int array[],int length,int *tmp){//排序if(length>1){int mid=length/2;mergesort(array,mid,tmp);mergesort(array+mid,length-mid,tmp);Merge(array,mid,array+mid,length-mid,tmp);}}void Msort(int array[],int length){int *p=new int[length];//辅助数组mergesort(array,length,p);delete p;return ;}int main(){int tmp[10];int q[10]={3,1,5,7,9,0,2,4,6,8};Msort(q,10);for(int i=0;i<10;i++)printf("%d ",q[i]);}
0 0
- 经典算法--归并排序
- 【经典排序算法】归并排序
- 经典算法之归并排序
- 经典排序算法--归并排序算法分析
- 经典排序算法之归并排序
- 经典排序算法 - 归并排序Merge sort
- 经典排序算法——归并排序
- 经典排序算法之归并排序
- 经典排序算法 - 归并排序Merge sort
- 经典算法学习:排序之归并排序
- 经典排序算法 - 归并排序Merge sort
- 经典排序算法——归并排序
- 经典排序算法----归并排序(稳定)
- 经典排序算法2:归并排序
- 经典排序算法之:归并排序
- 经典排序算法 - 归并排序Merge sort
- 经典排序算法之归并排序
- 经典白话算法之归并排序
- linux下编译rtmpdump
- music算法分析与实现
- DS5 eclipse上linux application开发流程(基于DE1-SoC)
- MySQL在远程访问时非常慢的解决skip-name-resolve 并且出现Reading from net
- 《深入浅出 Java Concurrency》系列
- 经典算法--归并排序
- 安全密码存储,该怎么做,不该怎么做?
- java--类加载器
- 【最小生成树 并查集】hdu 3371 Connect the Cities
- 视图和索引一些规则以及应用
- MFC中动态数组CArray的使用
- 经典的二分查找
- PyQt4 入门学习资料整理
- C++模板编程->嵌套实现元组