一.堆介绍堆,是一棵完全二叉树,根的值大于左右子树中所有结点的值,左右子树也是堆,除此之外,对其它元素之间的大小关系(如左右子树之间元素大小关系)没有要求。这是大根堆,如果把“大于”换成“小于“,就是小根堆,这里都以大根堆为例。由于堆是完全二叉树,所以可以用..
分类:
编程语言 时间:
2015-06-05 17:55:09
阅读次数:
245
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。
本文将依次介绍上述八大排序算法。
算法一:插入排序
插入排序示意图
插入排序是一种最简单直观的排序算法,...
分类:
编程语言 时间:
2015-06-05 12:28:08
阅读次数:
137
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。 算法一:...
分类:
编程语言 时间:
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://wuchong.me/blog/2014/02/09/algorithm-sort-summary/经典排序算法在面试中占有很大的比重,也是基础,为了未雨绸缪,在寒假里整理并用Python实现了七大经典排序算法,包括冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排...
分类:
编程语言 时间:
2015-06-03 15:37:46
阅读次数:
239
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