排序算法分类:内部排序(在排序过程中不需要访问外存就可以完成排序)外部排序内部排序分类:交换排序冒泡排序快速排序选择排序直接选择排序堆排序插入排序直接插入排序希尔排序合并排序外部排序:
常见的是多路归并算法,即将原文件分为多个能够一次装入内存一部分,分别把每一部分调入内存完成排序,然后对已经排序的....
分类:
其他好文 时间:
2014-06-29 14:23:42
阅读次数:
314
议题:快速排序实现之一(单向遍历)分析:算法原理:主要由两部分组成,一部分是递归部分QuickSort,它将调用partition进行划分,并取得划分元素P,然后分别对P之前的部分和P
之后的部分递归调用QuickSort;另一部分是partition,选取划分元素P(随机选取数组中的一个元素,交换...
分类:
其他好文 时间:
2014-06-03 10:00:23
阅读次数:
392
排序的严格定义:假设含有n个记录的序列为{r1,r2,......,rn},对应的关键字分别为{k1,k2......,kn},需确定1,2,......,n的一种排列p1,p2,......,pn,使其相应的关键字满足Kp1希尔排序),选择排序类(简单选择排序—>堆排序),交换排序类(冒泡排序—>...
分类:
其他好文 时间:
2014-05-30 17:43:33
阅读次数:
278
快排,从小到大排序 1 void quicksort(int a[],int low,int
high) 2 { 3 int i=low; 4 int j=high; 5 int temp=a[i]; 6
if(i=temp&&i<j) j--; ...
分类:
其他好文 时间:
2014-05-30 08:03:25
阅读次数:
268
前面讨论了几种排序算法,三种O(n2)时间复杂度的排序算法:插入,选择和冒泡和两种O(nlgn)的算法:快速排序和归并排序。这几种排序数组除了归并排序需要额外的数组开销。其他几个的空间复杂度都是O(1)。通过比较交换元素完成排序.计数排序是利用空间换取时间,增加了两个额外数组的开销,而且计数排序有一...
分类:
其他好文 时间:
2014-05-30 03:29:19
阅读次数:
241
堆排序算法使用二叉堆实现排序,树上的每一个节点对应数组中的一个元素。第一步:使用MAX_HEAPIFY维护一个最大堆(所有孩子节点都必须小于或等于其父节点)。它的输入为一个数组A和一下标i,调用MAX_HEAPIFY时,假设节点i的左右子树都是最大堆。伪码:
1 LEFT(i) 2 return.....
分类:
其他好文 时间:
2014-05-29 21:35:08
阅读次数:
364
#includeusing namespace std;////写出快速排序,归并排序与堆排序int
adjustarray(int a[],int left,int right){ int x = a[left]; while(left x
&& left < right) righ...
分类:
其他好文 时间:
2014-05-28 21:32:19
阅读次数:
282
一个堆可以被看作一棵二叉树和一个数组。堆排序主要分为以下几步:建堆,取出堆顶元素,调整堆,递归处理。本文中给出了在数组上建堆和调整以及堆排序的相关代码实现和实现过程的图示,以供参考。
分类:
编程语言 时间:
2014-05-28 19:58:31
阅读次数:
336
最大堆/最小堆 堆的定义是:n个元素的序列{k1,k2,…,kn},当且仅当满足如下关系时被成为堆 (1)Ki= k2i且 ki>= k2i-1 (i =
1,2,…[n/2])当满足(1)时,为最小堆,当满足(2)时,为最大堆。 若将此序列对应的一维数组堪称是一个完全二叉树...
分类:
其他好文 时间:
2014-05-28 03:17:26
阅读次数:
476
DescriptionGiven m sequences, each contains n
non-negative integer. Now we may select one number from each sequence to form a
sequence with m integers...
分类:
其他好文 时间:
2014-05-28 00:05:22
阅读次数:
298