堆排序和基数排序
堆排序:是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。
时间复杂度:平均情况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 )
稳定
代码: