排序方法_排序(图片来源网络,排序排序侵删)
冒泡排序是排序排序一种(zhong)简单的排序算法,它重复地走访过要排序的(de)排序排序数列,一次比较两(liang)个元素,排序排序如果它们的排序排序顺序错误就把它们交换过来,走访数列的排序排序工(gong)作是重复地进行直到没有再需要交换,也就是排序排序说该数列已经排序完成(cheng)。

时间复杂度:O(n^2)

空间(jian)复杂度:O(1)

选择排序的排序排序主要思想是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
时(shi)间复杂度:O(n^2)
空间复杂度:O(1)
插入排序的思想是每次将(jiang)一个待排序的记录,按其关键字大小插入到前面已经排序的序列(lie)中的适当位置,直到全部记录插入完成为止。
(图片来源网络,侵删)时间复杂度:O(n^2)
空间(jian)复杂度:O(1)
时间复杂度:O(nlogn)
空间复杂度:O(logn)
归并(bing)排序是(shi)建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用(yong),将(jiang)已有序的(de)子序列合并,得(de)到完全(quan)有序的序列;即先使每个子序列(lie)有序,再使子序列(lie)段间有序。
时间复杂度:O(nlogn)
(图片来源网络,侵删)空间复杂度:O(n)
堆排序是一种树形选择排序,是对直接选择排序的有效改进,堆的定义如下:具有n个元素的(de)序列(h1,h2,…,hn),当且仅当满足(hi>=h2i,hi>=h2i+1)或(hi<=h2i,hi<=h2i+1)(i=1,2,…,n/2)时称之为堆。
时间复杂度:O(nlogn)
空间复杂度:O(1)
下面是一个简单的介绍,包含了常见的排序方法及其特(te)点:
| 排序方(fang)法 | 时间复杂度(平均) | 时间(jian)复杂度(最坏) | 时间复杂度(最好) | 空间复杂度 | 稳定性 |
| 冒泡排序 | O(n^2) | O(n^2) | O(n) | O(1) | 稳定 |
| 选择排序 | O(n^2) | O(n^2) | O(n^2) | O(1) | 不稳定 |
| 插入排序 | O(n^2) | O(n^2) | O(n) | O(1) | 稳定 |
| 快速排序 | O(n log n) | O(n^2) | O(n log n) | O(log n) | 不稳定 |
| 归并(bing)排序 | O(n log n) | O(n log n) | O(n log n) | O(n) | 稳定 |
堆排序 | O(n log n) | O(n log n) | O(n log n) | O(1) | 不稳定(ding) |
| 希尔排序 | O(n log^2 n) | O(n^2) | O(n) | O(1) | 不稳定 |
| 计(ji)数排序 | O(n + k) | O(n + k) | O(n + k) | O(n + k) | 稳定 |
| 基数排序 | O(nk) | O(nk) | O(nk) | O(n + k) | 稳定 |
| 桶排序 | O(n + k) | O(n^2) | O(n) | O(n + k) | 稳定 |
注:
n 为(wei)要排序的元素个数(shu)。
k 为输入范围的大小,例如计数排序中(zhong)k为最大(da)值与最小值的差。
稳定性指的是相等的元素在排序后是否保持原来的顺序。
电话:15397061867
网 址:http://1bye.net/
邮 箱:31324261@qq.com
地 址:上海市宝山66号