C语言中如何详细实现快速排序算法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3609个文字,预计阅读时间需要15分钟。
本节介绍一个非常优秀且最常用的排序算法——快速排序算法。这个算法极其重要,初学者一定要掌握。
快速排序算法特别适用于大数据量的排序,其高速和高效率令人瞩目,甚至比快速比较两个字符还要快。
本节介绍一个非常优秀且最常用的排序算法,快速排序算法。这个算法极其重要,初学者一定要掌握。快速排序尤其适用于对大数据的排序,它的高速和高效无愧于“快速”两个字。虽然说它是“最常用”的,可对于初学者而言,用它的人却非常少。因为虽然很快,但它也是逻辑最复杂、最难理解的算法,因为快速排序要用到递归和函数调用。
快速排序所采用的思想是分治的思想。所谓分治,就是指以一个数为基准,将序列中的其他数往它两边“扔”。以从小到大排序为例,比它小的都“扔”到它的左边,比它大的都“扔”到它的右边,然后左右两边再分别重复这个操作,不停地分,直至分到每一个分区的基准数的左边或者右边都只剩一个数为止。这时排序也就完成了。
所以快速排序的核心思想就是将小的往左“扔”,将大的往右“扔”,只要能实现这个,就与快速排序的思想吻合。从初学者的角度,“小的往左扔大的往右扔”首先能想到的往往是小的往前插,大的往后插。这确实是一个思路,但我们知道,数组是不擅长插入的。这种思路虽然能吻合快速排序的思想,但实现起来就不是“快速”排序,而是“慢速”排序了。所以这种方法是不可行的。于是就有了下面的“舞动算法”。
“舞动算法”的思想是用交换取代插入,大大提高了排序的速度。
本文共计3609个文字,预计阅读时间需要15分钟。
本节介绍一个非常优秀且最常用的排序算法——快速排序算法。这个算法极其重要,初学者一定要掌握。
快速排序算法特别适用于大数据量的排序,其高速和高效率令人瞩目,甚至比快速比较两个字符还要快。
本节介绍一个非常优秀且最常用的排序算法,快速排序算法。这个算法极其重要,初学者一定要掌握。快速排序尤其适用于对大数据的排序,它的高速和高效无愧于“快速”两个字。虽然说它是“最常用”的,可对于初学者而言,用它的人却非常少。因为虽然很快,但它也是逻辑最复杂、最难理解的算法,因为快速排序要用到递归和函数调用。
快速排序所采用的思想是分治的思想。所谓分治,就是指以一个数为基准,将序列中的其他数往它两边“扔”。以从小到大排序为例,比它小的都“扔”到它的左边,比它大的都“扔”到它的右边,然后左右两边再分别重复这个操作,不停地分,直至分到每一个分区的基准数的左边或者右边都只剩一个数为止。这时排序也就完成了。
所以快速排序的核心思想就是将小的往左“扔”,将大的往右“扔”,只要能实现这个,就与快速排序的思想吻合。从初学者的角度,“小的往左扔大的往右扔”首先能想到的往往是小的往前插,大的往后插。这确实是一个思路,但我们知道,数组是不擅长插入的。这种思路虽然能吻合快速排序的思想,但实现起来就不是“快速”排序,而是“慢速”排序了。所以这种方法是不可行的。于是就有了下面的“舞动算法”。
“舞动算法”的思想是用交换取代插入,大大提高了排序的速度。

