归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个...
分类:
编程语言 时间:
2015-05-12 22:46:26
阅读次数:
131
Vim中split的使用方法一、作用用split可以显示两个不同的文件;或者同时显示一个文件的两个不同地方;又或者并排比较两个文件。这一切都可以通过分割窗口实现。如下图,左边的两个窗口是mytool.h和mytool.cpp 右边的两个窗口是commonfun.h和commonfun.cpp。同样的...
分类:
系统相关 时间:
2015-05-12 20:50:45
阅读次数:
176
什么是归并排序?归并排序:建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。主要思想为:将已有序的子序列合并,得到完全有序的序列。简单来说:就是将待排序序列分为若干个最小子序列(子序列长度为1或2),先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序过程图如下:算法思想正如我们所知,最普通...
分类:
编程语言 时间:
2015-05-12 13:44:59
阅读次数:
145
题目:
在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如在数组{7,5,6,4}中一共存在5对逆序对,分别是(7,6),(7,5),(7,4),(6,4),(5,4)
基本思想:
解法一:O(n^2)
最简单的想法就是遍历每一个元素,让其与后面的元素对比,如果大于则count++,但是这样的时间复...
分类:
编程语言 时间:
2015-05-12 11:37:44
阅读次数:
151
poj2299题目链接
题意:
一个含有n个数的数组, 每次只能交换相邻的两个数, 求最少操作多少次可以使该数组变成一个有序数组(从小到大)。
分析:
先说一下归并排序吧。 二分的思想, 就是将一元素集合分割成两个或更多个子集合,对每一个子集合分别排序,然后将排好序的子集合归并为一个集合。看图理解会好一点!
归并排序核心操作:将一维数组中前后相邻的两个有序序列归并为一个有序序列。那看一下我...
分类:
其他好文 时间:
2015-05-12 09:31:45
阅读次数:
183
八大排序算法的排序时间长度的比较,测试数据10000000时部分结果如下输入测试数据长度: 10000000数据初始化中...数据初始化完成! 堆排序用时: 8秒 499毫秒 快速排序用时: 22秒 35毫秒 归并排序用时: 34秒 473毫秒另外五种排序本人并未等待结果,读者可...
分类:
编程语言 时间:
2015-05-11 23:53:18
阅读次数:
144
九大排序算法再总结 算法的由来:9世纪波斯数学家提出的:“al-Khowarizmi”排序的定义:输入:n个数:a1,a2,a3,...,an输出:n个数的排列:a1',a2',a3',...,an',使得a1' T(n)=O(n^2)四、归并排序特点:stable sort、Out-pla...
分类:
编程语言 时间:
2015-05-11 23:39:16
阅读次数:
272
poj2299 http://poj.org/problem?id=2299题意:一个含有n个数的数组, 每次只能交换相邻的两个数, 求最少操作多少次可以使该数组变成一个有序数组(从小到大)。分析:先说一下归并排序吧。 二分的思想, 就是将一元素集合分割成两个或更多个子集合,对每一个子集合分别排序,...
分类:
其他好文 时间:
2015-05-11 23:30:31
阅读次数:
173
归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并过程为:比较a[i]和a[j]...
分类:
编程语言 时间:
2015-05-11 14:26:12
阅读次数:
139
//归并排序
#include
#include
#include
#include
using namespace std;
void merge_sort(array&, int);
int main()
{
array arr = { 1, 5, 2, 4, 3 };
merge_sort(arr, 5);
for (auto i : arr...
分类:
编程语言 时间:
2015-05-10 09:51:05
阅读次数:
122