快速排序算法:http://blog.csdn.net/liuchen1206/article/details/6954074归并排序算法:http://blog.csdn.net/left_la/article/details/8656953收集仅供参考排序代码: 1 #include 2 usi...
分类:
编程语言 时间:
2014-11-04 10:36:24
阅读次数:
250
一 外部排序的基本思路假设有一个72KB的文件,其中存储了18K个整数,磁盘中物理块的大小为4KB,将文件分成18组,每组刚好4KB。首先通过18次内部排序,把18组数据排好序,得到初始的18个归并段R1~R18,每个归并段有1024个整数。然后对这18个归并段使用4路平衡归并排序:第1次归并:产生...
分类:
编程语言 时间:
2014-11-03 16:18:19
阅读次数:
312
归并排序:先对两个有序的系列进行合并,合并的时候不断的对两个系列的第一个元素进行比较,把较小的那个移动到最前面成为了第一个元素,那么移动的元素后面的元素就是成为了下次比较的序列的第一个元素,如此不断的取两个系列的第一个元素进行比较。...
分类:
编程语言 时间:
2014-11-03 00:08:25
阅读次数:
301
LeetCode之Sort List
时间复杂度为O(n log n),空间复杂度为常量的单链表排序算法...
分类:
其他好文 时间:
2014-11-01 20:33:37
阅读次数:
185
归并(Merge)排序是将两个(或两个以上)有序表合并成一个新的有序表,
即把待排序序列分为若干个有序的子序列,再把有序的子序列合并为整体有序序列。
归并排序是建立在归并操作上的一种有效的排序算法。
该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。...
分类:
编程语言 时间:
2014-11-01 17:53:27
阅读次数:
243
题意:给出长度为n的序列,每次只能交换相邻的两个元素
问至少要交换几次才使得该序列为递增序列
分析:冒泡排序每次只能交换相邻两个元素,也就是求用冒泡排序使其为递增序列的交换次数,每交换一次记录一次就好
但是这题数据较大,冒泡排序效率比较低,会超时的
这里就可以利用归并排序了...
分类:
编程语言 时间:
2014-11-01 17:48:33
阅读次数:
247
排序有内部排序和外部排序,内部排序是指数据记录在内存中进行排序,而外排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里所说的八大排序是内部排序:当n较大,则应采用时间复杂度为O(nlog2n)的排序算法:快速排序、堆排序和归并排序。快速排序:是目前基于比较的内部排...
分类:
编程语言 时间:
2014-11-01 16:04:29
阅读次数:
281
堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先解说下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是全然二叉树或者是近似全然二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)不论什么一个子节点的键值。2.每一个结点的左子树和右...
分类:
编程语言 时间:
2014-11-01 13:11:20
阅读次数:
187
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define eps 1e-12
///#define M 1000100
///#define LL __int64
#define L...
分类:
编程语言 时间:
2014-11-01 01:07:17
阅读次数:
188
谈起分治算法,首先从字面意思理解:就是将一个问题划分成多个较小的问题的算法。其实正应题目的意思。其基本设计思想就是:将一个难以直接解决的大问题分解成一些规模较小的相同问题以便各个击破,分而治之。
设计步骤:1)分解:分解成若干子问题
2)求解:求解个子问题
3)合并:将子解合并成原问题的解。
在自考的时候,我们遇到的二路归并算法就...
分类:
编程语言 时间:
2014-10-31 22:12:08
阅读次数:
221