基本思想 两两相邻元素之间的比较,如果前者大于后者,则交换; 设数组长度为N。 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。 2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。 3.N=N-1,如果N不为0就重...
分类:
编程语言 时间:
2015-10-04 11:04:45
阅读次数:
344
二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个...
分类:
编程语言 时间:
2015-10-03 21:52:15
阅读次数:
340
工作原理: 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。稳定性: 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。时间复杂度: 比较次数O(n^2),比较...
分类:
编程语言 时间:
2015-10-02 19:54:07
阅读次数:
373
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较...
分类:
编程语言 时间:
2015-09-15 11:05:49
阅读次数:
252
------Java培训、Android培训、iOS培训、.Net培训期待与您交流! ------- 如下图所示,排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们通常所说八大排序是指的内部排序。 ....
分类:
编程语言 时间:
2015-09-04 15:36:12
阅读次数:
367
本系列最后一篇,综合分析下前面介绍的八种排序算法的效率,以及各自的适用情况。 通知实际测试比较各排序算法的效率,并分析各个排序算法的适用场景。...
分类:
编程语言 时间:
2015-08-21 21:37:36
阅读次数:
301
八大排序算法的稳定性及复杂度总结如下:选择排序算法准则每种排序算法都各有优缺点。因此,在实用时需根据不同情况适当选用,甚至可以将多种方法结合起来使用。影响排序的因素有很多,平均时间复杂度低的算法并不一定就是最优的。相反,有时平均时间复杂度高的算法可能更适合某些特殊情况。同时,选择算法时还得考虑它的可读性,以利于软件的维护。一般而言,需要考虑的因素有以下四点: 1.待排序的记录数目n的大小;2.记录...
分类:
编程语言 时间:
2015-08-18 09:07:49
阅读次数:
210
八大排序算法阅读目录1. 直接插入排序(Straight Insertion Sort)2. 希尔排序(Shells Sort)3. 直接选择排序(Straight Selection Sort)4. 堆排序(Heap Sort)5. 冒泡排序(Bubble Sort)6. 快速排序(Quick S...
分类:
编程语言 时间:
2015-08-10 00:15:04
阅读次数:
263
排序算法是一种最为基础的算法,可以说无处不在,比如我们的搜索引擎中搜索排序。本文详细介绍了常见的八种排序算法,并附有C++源码实现。最后,针对各种排序算法的性能,进行了比较和分析。
分类:
编程语言 时间:
2015-08-09 15:26:37
阅读次数:
153
排序算法是一种最为基础的算法,可以说无处不在,比如我们的搜索引擎中搜索排序。本文详细介绍了常见的八种排序算法,并附有C++源码实现。最后,针对各种排序算法的性能,进行了比较和分析。
分类:
编程语言 时间:
2015-08-09 01:44:47
阅读次数:
247