在这里,我们将看到一些排序方法。有200多种分类技术。我们将很少看到。一些排序技术是基于比较的排序,一些是基于非比较的排序技术。
基于比较的Soring技术是冒泡排序,选择排序,插入排序,合并排序,快速排序,堆排序等。这些技术被视为基于比较的排序,因为在这些技术中,将值进行比较,并在不同阶段将其放置在排序位置。在这里,我们将看到这些技术的时间复杂性。
| 分析类型 | 气泡排序 | 选择排序 | 插入排序 | 合并排序 | 快速排序 | 堆排序 |
|---|---|---|---|---|---|---|
| 最好的情况 | O(n 2) | O(n 2) | 上) | O(log n) | O(log n) | O(登录) |
| 平均情况 | O(n 2) | O(n 2) | O(n 2) | O(log n) | O(log n) | O(log n) |
| 最坏的情况下 | O(n 2) | O(n 2) | O(n 2) | O(log n) | O(n 2) | 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(n 2) |
排序技术也可以使用其他一些参数进行比较。一些排序算法是就地排序算法,而某些是就地排序算法。那些不需要任何额外空间的算法称为就地排序算法。如快速排序,堆排序算法就位。但是合并排序是异地排序技术。
有些算法在线,有些则离线。如果在排序过程中该算法接受新元素,则称为在线排序算法。从上述技术中,插入排序是在线排序技术。