排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。 算法一:...
分类:
编程语言 时间:
2015-06-05 11:55:25
阅读次数:
158
Sort a linked list in O(n log n) time using constant space complexity.解题思路:归并排序、快速排序、堆排序都是O(n log n),由于优先级队列是用堆排序实现的,因此,我们使用优先级队列即可,JAVA实现如下: publi...
分类:
编程语言 时间:
2015-06-05 00:24:17
阅读次数:
150
1.当待排序记录已经从小到大排序或者已经从大到小排序时,快速排序的执行时间最省()
A. 对
B. 错
答案:B
根据快排的特点可知,快速排序基本有序情况下效率最低,在基本无序情况下效率最高。
2.以下排序中时间复杂度最差的是
A. 归并排序
B. 选择排序
C. 希尔排序
D. 堆排序
答案:B
...
分类:
编程语言 时间:
2015-06-04 11:47:23
阅读次数:
232
一 最短路径最短路径分为单源最短路径和任意两点的最短路径,前者用Dijkstra算法,后者用floyed算法。Dijkstra算法是一种广度优先算法,以起始点层层往外扩展,直至到终点为止。其把顶点分为两个集合: 1. 已经求出最短路径的节点集合 S 2. 未确定最短路径的顶点集合U通过逐渐把U中.....
分类:
编程语言 时间:
2015-06-04 11:43:44
阅读次数:
163
#include#includeusing namespace std;int heapAdjust(int array[],int top,int depth){ int rc=array[top]; for(int i=top*2;iarray[i]) ...
分类:
编程语言 时间:
2015-06-03 19:20:04
阅读次数:
132
http://www.cnblogs.com/mengdd/archive/2012/11/30/2796845.htmlHeap Sort//堆筛选函数//已知H[start~end]中除了start之外均满足堆的定义//本函数进行调整,使H[start~end]成为一个大顶堆typedef in...
分类:
编程语言 时间:
2015-06-02 13:03:56
阅读次数:
128
插入排序
起泡排序
选择排序
归并排序
快速排序
堆排序...
分类:
编程语言 时间:
2015-06-01 22:46:48
阅读次数:
129
debug这么久hhhhhhh
话不多说 贴代码
#include
#include
using namespace std;
void Max_Heapify(int *a,int i,int _size)
{
int l,r,largest;
int temp;
l = 2*i;
r = 2*i+1;
if(la[i])...
分类:
编程语言 时间:
2015-06-01 22:39:37
阅读次数:
234
概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排...
分类:
编程语言 时间:
2015-06-01 18:16:45
阅读次数:
204
排序概述排序用途广泛,比如为数据库查询结果按时间排序,最小生成树算法中对边按权重排序,背包问题中对物品按大小排序等等。排序算法有很多,本文主要记录了冒泡排序、插入排序、快速排序、选择排序、堆排序、归并排序等几种比较流行的算法。冒泡排序 //冒泡排序,对数组做n-1趟扫描,每一趟把未就位的元素中的最大的元素
//放到他正确的位置上,每一趟扫描从输入数组第一个元素开始,依次...
分类:
编程语言 时间:
2015-05-31 11:01:31
阅读次数:
210