排序个数n越小,采用简单排序越合适
n数量很大,就用改进排序算法;
在乎内存使用量建议用堆排序;
在乎稳定性要求时建议用归并排序;
对于时间要求高的,一般情况下快速排序比归并排序要快。
- 堆排序总结
堆排序适合于数据量非常大的场合(百万数据)。
堆排序不需要大量的递归或者多维的暂存数组。这对于数据量非常巨大的序列是合适的。比如超过数百万条记录,因为快速排序,归并排序都使用递归来设计算法,在数据量非常大的时候,可能会发生堆栈溢出错误。
堆排序会将所有的数据建成一个堆,最大的数据在堆顶,然后将堆顶数据和序列的最后一个数据交换。接下来再次重建堆,交换数据,依次下去,就可以排序所有的数据。
- 排序算法稳定性的意义
例如要排序的内容是一组原本按照价格高低排序的对象,如今需要按照销量高低排序,使用稳定性算法,可以使得想同销量的对象依旧保持着价格高低的排序展现,只有销量不同的才会重新排序。当然,如果需求不需要保持初始的排序意义,那么使用稳定性算法依旧将毫无意义)