Add quick sort.

This commit is contained in:
krahets
2022-11-23 03:56:25 +08:00
parent 088f5f4ed1
commit 550024f69b
19 changed files with 223 additions and 28 deletions

View File

@@ -44,11 +44,11 @@ comments: true
## 算法流程
设数组长度为 $n$ ,完成第一轮「冒泡」后,数组最大元素已在正确位置,接下来只需排序剩余 $n - 1$ 个元素。
1. 设数组长度为 $n$ ,完成第一轮「冒泡」后,数组最大元素已在正确位置,接下来只需排序剩余 $n - 1$ 个元素。
同理,对剩余 $n - 1$ 个元素执行「冒泡」,可将第二大元素交换至正确位置,因而待排序元素只剩 $n - 2$ 个。
2. 同理,对剩余 $n - 1$ 个元素执行「冒泡」,可将第二大元素交换至正确位置,因而待排序元素只剩 $n - 2$ 个。
以此类推…… **循环 $n - 1$ 轮「冒泡」,即可完成整个数组的排序**
3. 以此类推…… **循环 $n - 1$ 轮「冒泡」,即可完成整个数组的排序**
![bubble_sort](bubble_sort.assets/bubble_sort.png)
@@ -72,7 +72,7 @@ comments: true
}
```
## 算法分析
## 算法特性
**时间复杂度 $O(n^2)$ ** 各轮「冒泡」遍历的数组长度为 $n - 1$ , $n - 2$ , $\cdots$ , $2$ , $1$ 次,求和为 $\frac{(n - 1) n}{2}$ ,因此使用 $O(n^2)$ 时间。