排序算法——归并排序(Merge Sort)
来源:互联网 发布:网络信息收集的好處 编辑:程序博客网 时间:2024/05/17 09:36
归并排序(Merge Sort)
C/C++代码:
#include <iostream>#include <stdlib.h>using namespace std;void Print( int r[], int n ){for( int i = 0; i < n; i++ ){cout << r[i] << " ";}cout << endl;}void Merge( int r[], int start, int mid, int end ){if( start > mid || mid > end ) return;int i = start, j = mid + 1, k = 0;int *array = (int*) malloc( ( end - start + 1 ) * sizeof( int ) ); while(i <= mid && j <= end){if( r[i] < r[j] )array[k++] = r[i++];elsearray[k++] = r[j++];} while( i <= mid )array[k++] = r[i++];while( j <= end )array[k++] = r[j++]; for( i = start, j = 0; i <= end; i++, j++)r[i] = array[j]; free( array );}void MergeSort( int r[], int start, int end ){if( start < end ){int mid = ( start + end ) / 2;MergeSort( r, start, mid );MergeSort( r, mid + 1, end );Merge( r, start, mid, end );}}int main(){int r[] = { 34, 12, 45, 78, 52, 18, 67, 90, 64, 72, 27 };int n = sizeof( r ) / sizeof( int );Print( r, n );MergeSort( r, 0, n-1 );Print( r, n );system( "PAUSE" );return 0;}
0 0
- 归并排序算法——Merge Sort
- 排序算法——归并排序(Merge Sort)
- 排序算法——归并排序(Merge Sort)
- 排序算法(二)—归并排序(Merge sort)
- 【算法】归并排序 merge sort
- 归并(Merge Sort)排序算法
- 算法-归并排序(Merge-Sort)
- merge-sort (归并排序)——分治算法
- 经典排序算法 - 归并排序Merge sort
- 经典排序算法 - 归并排序Merge sort
- 经典排序算法 - 归并排序Merge sort
- 经典排序算法 - 归并排序Merge sort
- 【排序算法】 归并排序 merge sort
- 归并排序(merge sort)
- 归并排序(Merge sort)
- 归并排序Merge-Sort
- 归并排序(Merge Sort)
- 归并排序(Merge Sort)
- 《回乡偶书一》 贺知章
- Codeforces Round #264 (Div. 2) C
- MFC 双缓冲 GDI+ Graphics 在图片上画图写字 避免闪烁
- 简单相册的实现
- 《回乡偶书二》 贺知章
- 排序算法——归并排序(Merge Sort)
- SDK编程:任务栏TaskBar与对话框Dialog实现一个简单功能
- WIN7下建立wifi热点以及与VPN共存的方法
- 黑马程序员_多线程
- [索引] 哈希 / STL集合
- 想家
- OC继承课后练习_打僵尸
- VPN基础
- ActiveMQ In Action 第一章 消息传递和ActiveMQ简介 1.3 开始使用ActiveMQ