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

在这里,我们将看到一些排序方法。有200多种分类技术。我们将很少看到。一些排序技术是基于比较的排序,一些是基于非比较的排序技术。

基于比较的Soring技术是冒泡排序,选择排序,插入排序,合并排序,快速排序,堆排序等。这些技术被视为基于比较的排序,因为在这些技术中,将值进行比较,并在不同阶段将其放置在排序位置。在这里,我们将看到这些技术的时间复杂性。

分析类型气泡排序选择排序插入排序合并排序快速排序堆排序
最好的情况O(n 2O(n 2上)O(log n)O(log n)O(登录)
平均情况O(n 2O(n 2O(n 2O(log n)O(log n)O(log n)
最坏的情况下O(n 2)O(n 2O(n 2O(log n)O(n 2O(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(n 2

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

有些算法在线,有些则离线。如果在排序过程中该算法接受新元素,则称为在线排序算法。从上述技术中,插入排序是在线排序技术。