原路归并
来源:互联网 发布:淘宝直播代购是真的吗 编辑:程序博客网 时间:2024/05/22 15:37
// ConsoleApplication55.cpp : 定义控制台应用程序的入口点。//原地归并排序#include "stdafx.h"#include<iostream>#include<string>using namespace std;//将长度为n的数组逆转void reverse(int *arr, int n){for (int i = 0; i < (n / 2); i++){int temp = arr[i];arr[i] = arr[n - 1 - i];arr[n - 1 - i] = temp;}}//将含有n个元素的数组循环左移i位void exchange(int *arr, int n, int i){reverse(arr,i);reverse(arr + i, n - i);reverse(arr, n);}void merge(int *arr, int begin, int mid, int end){int i = begin, j = mid, k = end;while (i < j && j <= k){while (i < j && arr[i] <= arr[j]){i++;}int step = 0;while (j <= k && arr[j] <= arr[i]){j++;step++;}exchange(arr + i, j - i, j - i - step);i += step;}}void MergeSort(int *arr, int l, int r){if (l < r){int mid = (l + r) / 2;MergeSort(arr, l, mid);MergeSort(arr, mid+1, r);merge(arr, l, mid+1, r);} }int _tmain(int argc, _TCHAR* argv[]){int a[7] = { 4, 6, 3, 36, 24, 2, 45 };MergeSort(a, 0, 6);//exchange(a, 7,3);for (int i = 0; i < 7; i++)cout << a[i] << " ";system("pause");return 0;}
<img src="http://img.blog.csdn.net/20160821200138296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
0 0
- 原路归并排序
- 原路归并
- [原]归并排序的java递归实现
- 二路归并 && 插入归并 && 原地归并
- 归并排序:二路归并
- 归并排序--二路归并
- 归并排序(2-路归并排序)
- 归并排序(二路归并)
- (1.3.5)归并排序:二路归并
- 归并排序、二路归并排序
- 数据结构-二路归并及归并排序
- 人人都来写算法 之 归并有序数组,(要求:利用原数组,且时间复杂度O(n)
- 二路归并
- 数据结构--二路归并
- 2路归并排序
- 二路归并理论
- 多路归并排序
- 二路归并排序
- 动态创建二维数组
- 漫步微积分二十三——重力作用下的运动 逃逸速度和黑洞
- java面试题14--进程和线程的差别
- java中native关键字的用法
- 如何实现1080P延迟低于500ms的实时超清直播传输技术
- 原路归并
- 对优秀程序员的思考
- EBS 12.2.5安装
- 【软件工程】--设计阶段
- 老程序员边学习C#边开发智慧医疗系统---系统登录001
- 2016夏季练习
- 关于项目管理的一点一滴
- Nginx学习(1)
- 大数据Spark “蘑菇云”行动Hadoop实战速成之路第29课:Hadoop架构详解及Hadoop集群搭建、配置和测试实战