堆排序有点小复杂,分成三块 第一块,什么是堆,什么是最大堆 第二块,怎么将堆调整为最大堆,这部分是重点 第三块,堆排序介绍 第一块,什么是堆,什么是最大堆 什么是堆 这里的堆(二叉堆),指得不是堆栈的那个堆,而是一种数据结构。 堆可以视为一棵完全的二叉树,完全二叉树的一个“优秀”的性质是,除了最底层 ...
分类:
编程语言 时间:
2016-06-02 18:19:15
阅读次数:
215
今天,我们来总结一下排序算法:
排序分为冒泡排序,选择排序,插入排序,希尔排序,合并排序,快速排序,堆排序,基数排序等等,本篇文章我来详细解析冒泡排序,选择排序,直接插入排序。冒泡排序首先说说最简单的冒泡排序:从老谭那本书就开始认识冒泡排序了,这种方法简单易懂:
这张动图可以解释冒泡排序。
接下来,看代码的实现:#include
#include
#i...
分类:
编程语言 时间:
2016-06-02 13:47:13
阅读次数:
191
/*堆排序*/
#include<iostream>
usingnamespacestd;
voidAdjustDown(int*array,size_tsize,size_tparent)
{
size_tchild=parent*2+1;
while(child<size)
{
if(child+1<size
&&array[child]<array[child+1])
{
++child;
}
if(array..
分类:
编程语言 时间:
2016-06-02 09:57:35
阅读次数:
265
快速排序是二叉查找树(二叉查找树)的一个空间最优化版本。不是循序地把数据项插入到一个明确的树中,而是由快速排序组织这些数据项到一个由递归调用所隐含的树中。这两个算法完全地产生相同的比较次数,但是顺序不同。对于排序算法的稳定性指标,原地分区版本的快速排序算法是不稳定的。其他变种是可以通过牺牲性能和空间 ...
分类:
编程语言 时间:
2016-06-01 21:18:52
阅读次数:
175
堆排序 堆排序:基于优先队列的思想,时间复杂度为O(N logN )。 堆分为大顶堆和小顶堆,大顶堆是每个父节点的值都大于等于每个子节点的值,而小顶堆恰恰相反,每一个父节点的值都小于等于子节点的值。 首先是根据已知的数据构建一个大顶堆,给定的数组序列:a={16,7,3,20,17,8},构建过程如 ...
分类:
编程语言 时间:
2016-06-01 21:07:37
阅读次数:
173
选择排序工作原理:每一次从待排序的数据元素中选出最大或最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。voidSelectSort(int*a,size_tsize)
{
assert(a);
for(inti=0;i<size;i++)
{
intmin=i;
for(intj=i+1;j<size;j++)
{
//选择最小元素
if(a[..
分类:
编程语言 时间:
2016-06-01 07:00:34
阅读次数:
154
// std::sort 学习:一种递归分治方法今天看了看 stl 的 std::sort 的代码,众所周知,这个函数是在快速排序递归太深的时候使用堆排序防止过度退化,但是今天说的不是这个。我们只看快速排序的部分。我们一般实现快速排序大概是这样的(本王随意写了个用下标当参数的排序函数,领会意思即可)... ...
分类:
其他好文 时间:
2016-05-31 00:39:47
阅读次数:
253
郑重声明:本文99.99%转载自http://blog.csdn.net/morewindows/article/details/6709644/ 快一年没碰堆排序了……在这里给自己 总结 搞晕一下。 *堆排序基于二叉堆 二叉堆的定义 二叉堆是完全二叉树或者是近似完全二叉树。 二叉堆满足二个特性: ...
分类:
编程语言 时间:
2016-05-29 21:31:06
阅读次数:
207
选择排序&&堆排序 1.选择排序: 介绍:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 ...
分类:
编程语言 时间:
2016-05-27 20:23:34
阅读次数:
398
插入排序
1动图展示
2算法描述
3示例代码
选择排序
1动图展示
2算法描述
3示例代码
冒泡排序
1动图展示
2算法描述
3示例代码
快速排序
1动图展示
2算法描述
3示例代码
合并排序
1动图展示
2算法描述
3示例代码
希尔排序
1动图展示
2算法描述
3示例代码
堆排序
1动图展示
2算法描述
3示例代码这里抽象出了一个排序基类:public abstract class BaseSor...
分类:
编程语言 时间:
2016-05-27 11:30:32
阅读次数:
240