堆排序算法的时间复杂度为O(nlgn).在堆排序算法中,我们使用的是最大堆。(1)初始时候,堆排序算法利用BUILD-MAX-HEAP将输入数组A[1..n]建成最大堆。此时堆的根结点是最大元素,且该元素位于数组A[1]。接着将A[1]与A[n]互换,则可以将A[1..n]中的最大值置于A[n]。(...
分类:
其他好文 时间:
2014-07-22 23:16:35
阅读次数:
404
复习冒泡排序算法,同时自己也写了一个排序算法。实现效果:1.自己的算法思想:数组中数据取第一个为默认最小,依次和后面每个数据比较,只要有比其小的就交换直至找出最小的。然后将第二个数据与其后面所有数据比较,找出最小,依次重复2.冒泡排序算法思想:数据从最低端到最高端为a[n]......a[0]第一轮...
分类:
编程语言 时间:
2014-07-22 23:13:56
阅读次数:
403
概要本章介绍排序算法中的基数排序。内容包括:1.基数排序介绍2.基数排序图文说明3.基数排序实现3.1基数排序C实现3.2基数排序C++实现3.3基数排序Java实现转载请注明出处:http://www.cnblogs.com/skywang12345/p/3603669.html更多排序和算法请参...
分类:
其他好文 时间:
2014-07-22 23:06:32
阅读次数:
366
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。通常堆是通过一维数组来实现的。在起始数组为
0 的情形中:父节点i的左子节点在位置 (2*i+1);父节点i的右子节点在位置...
分类:
其他好文 时间:
2014-04-30 17:13:32
阅读次数:
464
对于包含N个数的输入数组来说,快速排序是一种最坏情况时间复杂度为O(n2)的排序算法。虽然最坏情况时间复杂度很差,但是快速排序通常是实际排序应用中最好的选择,因为它的平均性能非常好:它的期望时间复杂度是O(nlgn),而且O(nlgn)中的隐藏因子非常小。另外,它还能够进行原址重排,甚至在虚存环境中...
分类:
其他好文 时间:
2014-04-29 21:54:47
阅读次数:
508
冒泡排序,往两个方向泡,一个往小泡,一个网大泡
#include
#include
#include
void bubble_sort(int *a,int n){
int temp;
for(int i=0;i<n;i++)
for(int j=0;ja[j+1]){
temp=a[j];
a[j]=a[j+1];
...
分类:
其他好文 时间:
2014-04-29 13:28:21
阅读次数:
364
利用挖坑填数+分治实现的快排代码如下:import
java.io.BufferedReader;import java.io.IOException;import
java.io.InputStreamReader;import java.util.Formatter;import java.ut...
分类:
其他好文 时间:
2014-04-29 10:33:46
阅读次数:
404
概要本章介绍排序算法中的桶排序。内容包括:1.桶排序介绍2.桶排序图文说明3.桶排序实现3.1
桶排序C实现3.2 桶排序C++实现3.3
桶排序Java实现转载请注明出处:http://www.cnblogs.com/skywang12345/p/3602737.html更多排序和算法请参考:数据...
分类:
其他好文 时间:
2014-04-29 09:14:46
阅读次数:
483
计数排序(Counting
sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值小于等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。限制:所有值得取值范围不能太大,并且需要知道确切的取值范围。本算法需要的辅助空间要求较高。当输入的元素是
n ...
分类:
其他好文 时间:
2014-04-28 17:13:54
阅读次数:
558
再过段时间就要邀请赛了。下去开始写周总结。就研究的东西来看,这一周主要研究了研究了线段树和树状数组,并写了几篇博客,博客链接:http://www.cnblogs.com/fightingboy/p/3686188.html或 http://blog.csdn.net/asdfghjkl1993/article/details/24499001
用简单的几句话概括它们,线段树和树状数组都是...
分类:
其他好文 时间:
2014-04-27 22:17:19
阅读次数:
268