• 欢迎使用千万蜘蛛池,网站外链优化,蜘蛛池引蜘蛛快速提高网站收录,收藏快捷键 CTRL + D

快排的时间复杂度(论文排序号什么意思)


上期文章 排序算法——(2)Python实现十大常用排序算法 为大家介绍了十大常用排序算法的前五种(冒泡、选择、插入、希尔、归并),因为快速排序的重要性,所以今天将单独为大家介绍一下快速排序!

一、算法介绍

排序算法(Sorting algorithm)是计算机科学最古老、最基本的课题之一。要想成为合格的程序员,就必须理解和掌握各种排序算法。其中"快速排序"(Quicksort)使用得最广泛,速度也较快。它是图灵奖得主C. A. R. Hoare(托尼·霍尔)于1960时提出来的。

托尼·霍尔

二、算法原理

快排的实现方式多种多样,猪哥给大家写一种容易理解的: 分治+迭代 ,只需要三步:

举个例子,假设我现在有一个数列需要使用快排来排序:{3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48},我们来看看使用快排的详细步骤:

三、代码实现

是不是很简洁很秀,如果再有面试官让你手写一个快排,你就把这行写上去吧,面试官见了都要喊你秀儿,哈哈。

在你感叹python吊炸天的同时,你因该考虑到代码的可读性问题,lambda函数设计是为了代码的简洁性,但是滥用的话会导致可读性变得极差,而且现在pep8代码规范中也不建议使用lambda函数了,建议使用关键字def去定义一个函数,所以下面猪哥给大家写一段符合pythonic风格的快排代码

四、算法分析

五、快排优化

快速排序有一个缺点就是对于 小规模的数据集性能不是很好 。可能有人认为可以忽略这个缺点不计,因为大多数排序都只要考虑大规模的适应性就行了。但是快速排序算法使用了分治技术,最终来说大的数据集都要分为小的数据集来进行处理,所以快排分解到最后几层性能不是很好,所以我们就可以使用扬长避短的策略去优化快排:

这一改进被证明比持续使用快速排序算法要有效的多。

六、模拟面试

七、总结

快排是面试与考试中最高频的一种排序算法(没有之一),请大家 务必理解与掌握 ,欢迎大家在评论区留言,同时也希望大家转发分享让更多的人爱上python这门语言。

本文链接:https://www.24zzc.com/news/169580676639067.html

相关文章推荐

    无相关信息