经典排序算法(三)

堆排序算法:

堆是完全二叉树 2.大顶堆:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆。3.小顶堆:每个结点的值都大于或等于其左右孩子结点的值,称为小顶堆。

完全二叉树性质:如果i>1,则双亲是结点[i/2]。也就是说下标i与2i和2i+1是双亲子女关系。 当排序对象为数组时,下标从0开始,所以下标 i 与下标 2i+1和2i+2是双亲子女关系。

图解排序算法(三)之堆排序:https://www.cnblogs.com/chengxiao/p/6129630.html(详细步骤,不多说了哈)

堆的形状是一棵完全二叉树或平衡二叉树。。。。。。。

经典排序算法(三)

经典排序算法(三)

经典排序算法(三)

桶排序算法:

1)桶排序是稳定的;

2)桶排序是常见排序算法中最快的一种,大多数情况下比快排和归并排序还要快。

3)桶排序非常快但是也非常消耗空间,典型的以空间换时间,基本上是最耗内存的一种排序算法。

参考啊哈算法!!!

经典排序算法(三)

计数排序算法:

提前必须是已知待排序的关键字为整型且范围已知。

时间复杂度为O(n+k)

n指的是桶的个数,k指的是待排序数组的长度,不是基于比较的排序算法,因此效率非常之高。

但需要一些辅助数组,如C[0..k],因此待排序的关键字范围0~k不宜过大。

经典排序算法(三)

经典排序算法(三)


分享到:


相關文章: