数据结构与算法(1) | 青训营笔记

142 阅读1分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

数据结构与算法(1) | 青训营笔记

    目录:
    1.为什么要学习数据结构与算法?
    2.经典的排序算法
    3.从零打造pdqsort

数据结构与算法几乎存在于程序开发的所有地方,适当地使用可以大大提高代码的效率。

1.排序算法?

1)什么是最快的排序算法 不同的编程语言有对应的算法,如

python的timsort c++的introsort Rust的pdqsort

go的排序算法有没有提升空间?

1.19之后取消原来类似introsort的算法,改用新的算法。

让我们带着下面的问题看下去:

1.新的算法如何实现?
2.生产环境中的排序算法和课本上的有什么区别?
3.go的排序算法是快速排序吗?

1.经典算法

屏幕截图 2022-05-27 105516.jpg

image.png

image.png

可以看到,在不同的场景下,算法有各自的特长,我们是否可以取其所长,形成一个更高效的算法?

1.pdqsort算法?

1.用上面三种(插入、快速排序、堆排序)实现这个算法。

version1:

image.png

version2:

image.png

version3:

image.png

从一开始的简单地把三种排序方法拼凑在一起,加上针对性的优化,可以达到更高效的排序算法。