归并排序
来源:互联网 发布:htconemini知乎 编辑:程序博客网 时间:2024/06/06 03:42
归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。
#include <cstdio>#include <iostream>using namespace std;void merge(int *A, int left, int mid, int right){int ll=mid-left+1, rl=right-mid, i;int L[ll+1], R[rl+1];for(i=0; i<ll; i++)L[i]=A[left+i];for(i=0; i<rl; i++)R[i]=A[mid+i+1];L[ll]=32767;R[rl]=32767;ll=0;rl=0;for(i=0; i<right-left+1; i++){if(L[ll]<R[rl]){A[left+i]=L[ll];ll++;}else{A[left+i]=R[rl];rl++; }}}void merge_sort(int *A, int left, int right){if(left<right){int mid = (left+right)/2;merge_sort(A,left,mid);merge_sort(A,mid+1,right);merge(A,left,mid,right);}}int main(){int A[500];int lens,i;cin>>lens;for(i=0;i<lens;i++)cin>>A[i];merge_sort(A, 0, lens-1);for(i=0;i<lens;i++)printf("%d ",A[i]);return 0;}
阅读全文
0 0
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 为什么模板不支持分离编译
- Spark Programming Guide(四)
- vue.js与其他前端框架的对比
- hdu 1671 Phone List(字典树)
- Android studio中布局render problem问题
- 归并排序
- 使用 c++ 扩展python
- mysql数据库优化之语句优化
- Linux awk+uniq+sort 统计文件中某字符串出现次数并排序
- pycharm 中文乱码
- centos7安装JDK8
- 算法导论练习 3.2-5
- Android编译过程中首先运行的是build/envsetup.sh脚本的作用是什么?
- Linux多线程服务器编程shared_ptr以及weak_ptr实现的弱回调以及对象池管理