mirror of
https://github.com/CaiJimmy/hugo-theme-stack.git
synced 2025-04-28 19:43:31 +08:00
c++
This commit is contained in:
parent
3d60548efe
commit
d3092e77e0
@ -489,3 +489,22 @@ int main()
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
总结一下:
|
||||||
|
|
||||||
|
O(n^2)就是两层循环:for+for,或者for+while
|
||||||
|
|
||||||
|
- 冒泡排序:O(n^2),第一次将第一大的浮出水面,第二次将第二大的浮出水面,...
|
||||||
|
- 选择排序:O(n^2),第一次拿到第一小元素的下标,第二次拿到第二小元素下标...
|
||||||
|
- 插入排序:O(n^2),将未排好顺序的部分,一个元素一个元素的插入到排好顺序的部分,
|
||||||
|
|
||||||
|
比如举个例子:将x插入到[0,j]的部分,每次在遇到x<q[j]时,q就往后移动一位,直到x不再小于为止,那个位置就是x应该插入的位置
|
||||||
|
|
||||||
|
- 快速排序:平均情况下为O(n log n),最坏情况下为O(n^2),==先治后分==,取一个标准,比如说中间值,我设置为x,不断将数组分为<=x的部分,和>=x的部分,双指针从两边走,走不动时(不满足q[i]<x<q[j]),就交换
|
||||||
|
|
||||||
|
- 归并排序:O(n log n),分治思想,==先分后治==,分成[l,mid]和[mid+1,r],
|
||||||
|
|
||||||
|
,看成两个数组,每次取每个数组的最小值,加入到临时数组中,
|
||||||
|
|
||||||
|
最后在把临时数组放到最终的数组中(临时数组每次递归都是从下标0开始的)
|
||||||
|
|
||||||
|

|
BIN
exampleSite/content/post/2024-04-20七大排序算法/图片/1714324656728.png
Normal file
BIN
exampleSite/content/post/2024-04-20七大排序算法/图片/1714324656728.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.5 KiB |
Loading…
Reference in New Issue
Block a user