堆排序和基数排序

堆排序和基数排序

 

堆排序:是指利用这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。

时间复杂度:平均情况O(nlogn) 最好情况O(nlogn) 最坏情况O(nlogn)

空间复杂度:O(1)

不稳定

 

 

 

 

 

代码:

 

 

 

基数排序:属于“分配式排序”,又称“桶排序”(bucket sort),顾名思义,它是透过键值的部份信息,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,在某些时候,基数排序法的效率高于其它的稳定性排序法。

时间复杂度:平均情况O( d(r+n) ) 最好情况O( d(n+dr) ) 最坏情况O( d(r+n) )

空间复杂度:O( rd+n )

稳定

 

 

 

 

代码:

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/IT_Quanwudi/article/details/83795902
今日推荐