学编程必须了解的排序算法——快速排序

Posted 图灵密码编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学编程必须了解的排序算法——快速排序相关的知识,希望对你有一定的参考价值。

什么是排序算法?

   将杂乱无章的数据元素,通过一定的方法按关键字顺序排列的过程叫做排序。

例如:有一组无序序列(1 3 8 4 9 0 2),排序后得到有序序列(01 2 3 4 8 9)。

 

常见排序算法有什么?

快速排序、选择排序、冒泡排序、归并排序等。

今天就讲解一下快速排序。

 

快速排序 

快速排序是一种分而治之的排序算法,通过随机选择分区点来避免出现最坏的情况。 

 

  演示需求:若干高低不同的圆柱,一个木板用于放置圆柱,一支笔,一个骰子。

学编程必须了解的排序算法——快速排序

1.随机选择分区点

学编程必须了解的排序算法——快速排序


2.按照分区点的高度划条线

    

学编程必须了解的排序算法——快速排序


3.高出分局点的元素需要向右移动

学编程必须了解的排序算法——快速排序


4.低于分区点的元素需要向左移动

学编程必须了解的排序算法——快速排序


5.移动元素

学编程必须了解的排序算法——快速排序


6.重复上述(1-5)的步骤分别对位于分区点两边的元素进行排序,最后得到有序序列。


请问:现在明白什么是快速排序了么


以上是关于学编程必须了解的排序算法——快速排序的主要内容,如果未能解决你的问题,请参考以下文章

c++快速排序算法

C++入门:排序之快速排序

C语言之快速排序法

洛谷 P1177 模板快速排序 快速排序/multiset排序

快速排序算法的简单理解

P1177 模板快速排序