归并排序--二路归并
来源:互联网 发布:ubuntu解压缩命令 .gz 编辑:程序博客网 时间:2024/05/22 03:50
归并排序时的时间复杂度为O(nlgn)其主要思想是分治法(divide and conquer),分就是要将n个元素的序列划分为两个序列,再将两个序列划分为4个序列,
直到每个序列只有一个元素,最后,再将两个有序序列归并成一个有序的序列再得到两个有序序列,再合成一个有序序列。。
#include <iostream>#include <cstdio>using namespace std;void mergeSort(int jk[], int bo[], int left, int mid, int right){int i = left, j = mid+1, k = left, l;while(i <= mid && j <= right){if(jk[i] > jk[j]) bo[k++] = jk[j++];else bo[k++] = jk[i++];}while(i <= mid) bo[k++] = jk[i++];while(j <= right) bo[k++] = jk[j++];for(l = left; l < k; ++l)jk[l] = bo[l];}void merge(int jk[], int bo[], int left, int right){int mid;if(left < right){mid = (left+right)/2;merge(jk, bo, left, mid);merge(jk, bo, mid+1, right);mergeSort(jk, bo, left, mid, right);}}int main(){int bo[15], jk[15] = {0, 5, 8, 1, 7, 9, 6, 0, 3, 4, 2};merge(jk, bo, 1, 10);for(int i = 1; i <= 10; ++i)printf("%d ", jk[i]);return 0;}
1 0
- 归并排序:二路归并
- 归并排序--二路归并
- 归并排序、二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- 二路归并排序
- Linux统计某文件夹下文件、文件夹的个数
- WebDriverException: Message: A new session could not be created.
- poj 1753 棋盘翻转(BFS+状态压缩)
- Windows CMD中 findstr命令
- 新浪sae上php部署 运行环境
- 归并排序--二路归并
- 一个抢红包的PHP库:redenvelope
- 去除 Hive 表中数据的引号
- Android开发中的二维码扫描功能
- https的加密解密过程
- Android 开发:(一)安卓开发环境搭建与配置 (Windows和Mac )以及目录结构介绍
- OnComponentBeginOverlap.AddDynamic 的编译错误【UE4】
- CSS选择器
- 【转】谈谈对 Web 安全的理解