数据结构中排序方法的比较


在这里,我们将了解一些排序方法。排序技术有200多种。我们将了解其中的一些。一些排序技术是基于比较的排序,一些是非基于比较的排序技术。

基于比较的排序技术包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序等。这些技术被认为是基于比较的排序,因为在这些技术中,值会被比较,并在不同的阶段放置到排序位置。在这里,我们将了解这些技术的复杂度。

分析类型冒泡排序选择排序插入排序归并排序快速排序堆排序
最佳情况O(n2)O(n2)O(n)O(log n)O(log n)O(logn)
平均情况O(n2)O(n2)O(n2)O(log n)O(log n)O(log n)
最坏情况O(n2)O(n2)O(n2)O(log n)O(n2)O(log n)

一些排序算法是非基于比较的算法。其中一些是基数排序、桶排序、计数排序。这些是非基于比较的排序,因为在排序时不会比较两个元素。这些技术的实现方式略有不同。现在我们将根据不同类型的分析来了解它们之间的区别。

分析类型基数排序(k是最大位数)计数排序(k是计数数组的大小)桶排序(k是桶的数量)
最佳情况O(nk)O(n + k)O(n + k)
平均情况O(nk)O(n + k)O(n + k)
最坏情况O(nk)O(n + k)O(n2)

排序技术也可以使用其他一些参数进行比较。一些排序算法是原地排序算法,一些是非原地排序算法。那些不需要任何额外空间的算法称为原地排序算法。例如,快速排序和堆排序是原地排序算法。但归并排序是非原地排序技术。

一些算法是在线算法,一些是离线算法。如果算法在排序过程中接受新元素,则称为在线排序算法。在上面提到的技术中,插入排序是在线排序技术。

更新于: 2019年8月27日

6K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.