1 #include 2 using namespace std; 3 int Merge(int A[],int p,int q,int r); 4 int Merge_Sort(int A[],int p,int r); 5 int OutPut(int A[],int n); 6 int .....
分类:
编程语言 时间:
2014-09-02 14:01:34
阅读次数:
248
归并排序的核心思想是分治原则:即将问题分解、解决、合并。问题分解师将n个元素分成n/2个元素的子序列;问题解决是用合并排序法对两个子序列进行递归排序;问题合并是利用已排好的两个子序列合并为新的序列,得到排序结果。可以看出,对已序序列的合并是问题关键。
1.合并已序序列:过程用图来表示吧!
#define INFTY 2147483647
void Merge(int a[],int low,i...
分类:
其他好文 时间:
2014-08-29 00:09:46
阅读次数:
278
//过程示例/*[12][23]---------------------合并[12]and[23]得[12,23]---------------------[21]---------------------合并[12,23]and[21]得[12,21,23]---------------------[12][23]---------------------合并[12]and[23]得[12,23]------------------------------------------..
分类:
其他好文 时间:
2014-08-28 11:39:00
阅读次数:
360
堆排序是一种具有合并排序和插入排序共同优点的排序方法。它的时间复杂度为O(nlgn)...
分类:
编程语言 时间:
2014-08-27 23:30:18
阅读次数:
271
描述给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中两路合并排序算法进行排序,并输出排序最后结果的相应序列。输入共两行,第一行给出排序元素数目n,第二行给出n个元素,1≤n≤100000,每个元素值范围为[0,100000]输出一行,输出排序结果。样例输入7483668721248...
分类:
其他好文 时间:
2014-08-25 22:47:04
阅读次数:
270
合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素
一般来说,合并两个已经有序的数组,首先是开一个能存的下两个数组的第三个数组,但是题目中已经说了,其中一个数组能全部存的下,显然就不应该浪费空间了。
从前往后扫的话,数据要存在大数组的前头,这样每次要把大数组的元素一次后移一位,显然不是什么好主意,所以我们从后往前存。
#include
#include...
分类:
其他好文 时间:
2014-08-23 08:50:40
阅读次数:
257
经典的排序算法有十种,分别是:选择排序、插入排序、希尔排序、冒泡排序、堆排序、合并排序、快速排序、计数排序、基数排序和桶排序。
下面对这些算法分类如下:
选择排序:简单选择排序、堆排序
插入排序:直接插入排序、二分插入排序、希尔排序
快速排序:快速排序、随机化快速排序
线性时间排序:计数排序、基数排序、桶排序
其他:冒泡排序、合并排序
这些排序排序算法的时间复杂度,稳...
分类:
其他好文 时间:
2014-08-20 16:31:32
阅读次数:
185
合并排序再枚举。题意问五个数组中各抽一个加起来 和是否为 0。開始想用 200*200*200 和 200*200 比。果然TLE了。后来知道 得 200*200,200*200 ,200 。先200*200 的枚举,排序,去重。然后三个元素加起来,微调 两个 200*200 的指针。这题用 %ll...
分类:
其他好文 时间:
2014-08-17 11:42:12
阅读次数:
202
二路归并排序的时间复杂度是O(n*log2n),空间复杂度是O(n)。
代码如下:
/**
* 源码名称:MergeSort.java
* 日期:2014-08-11
* 程序功能:合并排序
* 版权:CopyRight@A2BGeek
* 作者:A2BGeek
*/
public class MergeSort {
public void mergeSort(int[]...
分类:
其他好文 时间:
2014-08-11 17:52:02
阅读次数:
204
快速排序在最坏情况下的时间复杂度为O(n^2),虽然在最坏情况下运行时间比较差,但是快速排序通常是用于排序的最佳选择,因为其平均性能相当好,期望的运行时间为O(nlgn),且在O(nlgn)的记号中隐含的常数因子很小。
快速排序和合并排序有相似之处,都是需要划分序列,在合并排序中,划分的过程很简单,直接选择元素序列的中间位划分位置,排序是在合并的过程中实现的,所以合并排序的合并过程很重要;相比合...
分类:
其他好文 时间:
2014-08-10 15:49:50
阅读次数:
213