首页 > 应用开发 > Java > 好程序员Java教程教你5分钟了解快速排序
好程序员 Java 教程教你 5 分钟了解快速排序, 前言:
快速排序是面试中经常会问到的一种排序算法,对比其他一些排序算法,快速排序的平均时间相对较少。
快速排序使用了分治的思想,通过一轮的排序,可以将序列分割成独立的两个部分,其中一部分的值均比基准值小,另一部分的值均比基准值大。而后针对两部分序列再分别按照同样的算法进行排序,直到序列整体有序。
以如下序列 arr 为例进行升序排序,说明快速排序的基本算法
第一个位置的值 23 作为基准值 base ,从右边开始比较,如果 arr[high]>base,high 前移。
arr[high]<base,arr[low]=arr[high] ,然后 low 后移
Arr[low]<base, 不交换, low 后移
Arr[low]>base,arr[high]=arr[low] , high 前移
Arr[high]<base,arr[low]=base , low 后移,
low 和 high 指向同一个位置,
将基准数据赋值给 low 和 high 指向的同一位置,本轮比较结束。然后,再对 23 前的数据和 23 后面的数据,分别再按照上述算法进行比较排序,依次类推,直到所有元素有序。
由于对各个子序列都要进行相同算法的排序,可以采用递归思想实现快速排序
总结
以上介绍的是普通快速排序,针对快速排序,还有一些改进算法,可以进一步提高执行效率。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913892/viewspace-2648334/ ,如需转载,请注明出处,否则将追究法律责任。