“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。无论是顺序存储还是链表存储结构,都可在O(m+n)的时间量级上实现。
归并排序又是一类不同的排序方法。假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个为2或1的有序子序列;再两两归并,....... ,如此重复,直至得到一个长度为n的有序序列为止。
初始关...
分类:
其他好文 时间:
2014-09-13 09:23:54
阅读次数:
185
题目: 给出一列数,a1, a2,....到 an,求它的逆序对数。逆序对就是 下标 i 比 j小,但是值 ai 却比 a j大。n 可以高大 10万。
思路:
(1)穷举,肯定不现实的,因为n 可以高达10万,肯定超时;
(2)考录分治法,受到归并排序的启发,能不能不断划分数组到最小,然后合并时统计 逆序对数。划分和递归都和归并排序没什么区别,问题在合并时如何统计。
合并左右两个数...
分类:
其他好文 时间:
2014-09-11 22:29:12
阅读次数:
220
K路归并排序(k-way merge sort) 代码(C++)本文地址: http://blog.csdn.net/caroline_wendyK路归并排序作为经典的外部排序算法, 是程序员必须要掌握的.知识概念参考: 主要思想: 在k个已排序的文件中, 选择第一个值, 采用败者树, 更新二叉树结构, 最终选择最优值.代码仅供参考, 如最小值用(-1)代替, 最大值用(100)代替./*
*...
分类:
编程语言 时间:
2014-09-11 15:27:52
阅读次数:
199
Sequence
Time Limit: 6000MS
Memory Limit: 65536K
Total Submissions: 7447
Accepted: 2451
Description
Given m sequences, each contains n non-negative integer. Now we ma...
分类:
其他好文 时间:
2014-09-10 21:08:11
阅读次数:
200
看到一篇很好的博文,来自http://blog.csdn.net/morewindows/article/details/6709644下面是博文内容堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆...
分类:
其他好文 时间:
2014-09-10 19:19:10
阅读次数:
214
排序算法及其比较课程设计报告一、设计内容编程实现希尔、快速、堆排序、归并排序算法,并利用程序统计每种算法的执行时间。要求随机产生10000(或50000、100000、200000,由用户选择)个数据存入数据文件,然后读数据文件,分别采用不同排序方法进行排序,将结果存入另一个文件中。二、设计思想描述...
分类:
其他好文 时间:
2014-09-10 17:38:30
阅读次数:
211
几种排序方法:冒泡 希尔 插入 快排 堆排 归并
sort.h
#ifndef _SORT_H_
#define _SORT_H_
void insert_sort(int*, int);
void bubble_sort(int*, int);
void shell_sort(int *, int);
void quick_sort(int*, int, int);
voi...
分类:
其他好文 时间:
2014-09-09 23:04:39
阅读次数:
369
算法导论:任意一个比较排序算法,在最坏的情况下,至少要做n*lg(n)次的比较,因此堆排序与归并排序是渐近最优的比较排序算法但计数排序、基数排序和桶排序都不采用比较的方式来确定元素的顺序,因此下界n*lg(n)对它们并不适用计数排序假设被排序的元素都在范围[0, k]中,k为正整数,当k=O(n)的...
分类:
其他好文 时间:
2014-09-09 20:05:59
阅读次数:
201
在看了morewindows的白话经典算法的排序教程后,我用C++ 来...
分类:
编程语言 时间:
2014-09-09 18:20:39
阅读次数:
194
归并的含义是将两个或两个以上的有序表组合成一个新的有序表。假定待排序表中含有n个记录,则可以看成是n个有序的字表,每个表的长度为1,然后两两归并,得到[n/2]个长度为2或1的有序表;再两两归并,......如此重复,直到合并成一个长度为n的有序表为止,这种方法称为2-路归并排序。(图片来源)算法实...
分类:
其他好文 时间:
2014-09-09 17:58:29
阅读次数:
162