算法工程师必知必会的10大基础算法与python示例(一)
写在前面
微信公众号Datawhale推送的一篇文章,名字就叫算法工程师必知必会的10大基础算法。感觉很有意思,搬运到此。结合自己的理解以及LeetCode上面的一些例题,写在这里,当做学习记录。
算法一:快速排序算法
快排算是相当基础的算法,在算法导论那本书中貌似讲完冒泡,归并之后就讲的快排。一般同学对这个算法都比较熟悉。快排的平均时间复杂度是 O ( n l o g ( n ) ) O(nlog(n)) O(nlog(n)),最坏的情况下时间复杂度和冒泡一样,是 O ( n 2 ) O(n^2) O(n2)。但是最坏的情况并不常见,事实上,快排比其他的 O ( n l o g ( n ) ) O(nlog(n)) O(nlog(n))算法更快,因为它的内部循环可以再大部分架构上很有效率的被实现出来。
p.s. 快排是东尼.霍尔所发展的一种排序算法。
算法步骤如下:
- 从数组中挑选出一个算法,成为基准。
- 遍历数组,所有比基准小的放在基准前面,比基准大的放在基准后面,与基